| 2015/3/9 | J2EE | 被围观 4,014 views+
获取调用者信息的方法 一般的,我们可以通过堆栈信息获取调用当前方法的类名和方法名 // 通过堆栈信息获取调用当前方法的类名和方法名 String className = ""; String methodName = ""; Class clazz = null; StackTraceElement[] elements = new Throwable().getStackTrace(); for (int i = 0; i < elements.length; i++){ if (this.getClass().getName().equals(elements[i].getClassName())){ // 获取堆栈的下一个元素,就是调用者元素 // 如果想要获取当前方法所在类的信息,直接读取elements[i]就可以了 className = elements[i + 1].getClassName(); ...
| 2011/10/9 | Java基础 | 被围观 7,333 views+
我们知道,通过使用静态代理时,真实角色必须是存在的,并将其作为代理对象的内部属性,不能在程序中动态的调用真实角色。在事先并不知道真实角色的情况先,如果要使用代理,可以使用Java的动态代理类来解决。 与静态代理类的创建不同的是生成代理的方式,这里使用了java.lang.reflect.Proxy类的newProxyInstance()方法生成一个代理,并且在生成过程中需要传入一个代理处理器,java.lang.reflect.InvocationHandler的一个实现类。 public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, ...
| 2011/10/8 | Java基础 | 被围观 7,653 views+
java.lang.reflect.Array类提供了动态创建和访问数组元素的各种静态方法。 static Object newInstance(Class<?> componentType, int... dimensions) 创建一个具有指定的组件类型和维度的新数组。componentType:组件类型,Java中将数组的数组也就是二维数组当做一个组件。 static Object get(Object array, int index) 返回指定数组对象中索引组件的值。 static void set(Object array, int index, Object value) 将指定数组对象中索引组件的值设置为指定的新值。 以下是几个Array的实例 调用Array的newInstance()方法创建数组: 一维数组: Class classType = Cla...
| 2011/10/8 | Java基础 | 被围观 11,372 views+
任务:通过反射机制修改类中的私有属性的值 准备知识: Java反射机制以及域的获取与设置的相关方法 实现步骤: 首先创建一个类包含一个私有属性: class PrivateField{ private String username = "Jason"; } 通过反射机制修改username的值: //创建一个类的对象 PrivateField privateField = new PrivateField(); //获取对象的Class Class<?> classType = privateField.getClass(); //获取指定名字的私有域 Field field = classType.getDeclaredField("username"); //设置压制访问类型检查,只有这样,才能获取和设置某个具体类的Field对应的值。 field.setAccessib...
| 2011/10/7 | Java基础 | 被围观 7,879 views+
准备知识: Java反射机制 处理事务的JavaBean String的操作常用方法 这里我们通过反射机制动态获取属性的值模拟Struts中的自动赋值。 首先创建一个简单的User类包含两个属性username和userid以及getter、setter方法: class User { public User(){} private String username; private String userid; public String getUserid() { return userid; } public void setUserid(String userid) { this.userid = userid; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username...
| 2011/10/7 | Java基础 | 被围观 6,793 views+
关于动态语言: 一般而言,开发者社群说到动态语言,大致认同的一个定义是:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。 Java中的反射机制: Java中的反射机制指的是在程序运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。Java程序可以加载一个运行时才得知名称的Class,并获得其除了方法的定义的完整构造,并生成对象实体,或对其fields设值或调用其metho...
随机文章 本月热门 热评
1 JSF笔记 – MVC和JSF的介绍和下载使用 2011/12/1
2 Hibernate复合主键作为外键在关联映射中的配置方法 2011/9/30
3 说说Scrum敏捷开发 2014/6/1
4 Java多线程FAQ汇总 2012/3/6
5 虚拟机装不了系统,镜像文件用不了?很可能是分区工具的问题 2011/5/2
6 使用Eclipse开发Java Web过程中Debug调试的使用方法 2011/9/10
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.