java反射知识点总结
2016-04-01 09:16
639 查看
获取字节码文件
获取构造方法
修改成员变量
成员方法
test1
setProperty
Class clazz1 = Class.forName("com.heima.bean.Person"); Class clazz2 = Person.class; Person p = new Person(); Class clazz3 = p.getClass();
获取构造方法
Class clazz = Class.forName("com.heima.bean.Person"); Constructor c = clazz.getConstructor(String.class,int.class); Person p = (Person) c.newInstance("顾雨磊",26); Person p1 = (Person) c.newInstance("周红伟",28); Person p2 = (Person) c.newInstance("谷晓蕾",20);
修改成员变量
Class clazz = Class.forName("com.heima.bean.Person"); Constructor c = clazz.getConstructor(String.class,int.class); Person p = (Person) c.newInstance("顾雨磊",28); /*Field f = clazz.getField("name"); f.set(p, "李四");*/ Field f = clazz.getDeclaredField("name"); f.setAccessible(true); f.set(p, "周红伟"); System.out.println(p);
成员方法
Class clazz = Class.forName("com.heima.bean.Person"); Constructor c = clazz.getConstructor(String.class,int.class); Person p = (Person) c.newInstance("周大伟",22); Method m = clazz.getMethod("eat"); m.invoke(p); Method m1 = clazz.getMethod("eat", int.class); m1.invoke(p, 5);
test1
Class clazz = Class.forName("java.util.ArrayList"); Method m = clazz.getMethod("add", Object.class); m.invoke(list, "asd"); System.out.println(list);
setProperty
public void setProperty(Object obj ,String propertyName ,Object value) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException{ Class clazz = obj.getClass(); Field f = clazz.getDeclaredField(propertyName); f.setAccessible(true); f.set(obj, value); }
相关文章推荐
- jdk环境变量含义极其配置
- Hello, World!
- javax.naming.NoInitialContextException: Need to specify class name in environment or system property
- java泛型
- JDK与JRE及其在Eclipse中的使用
- java.util.concurrent.CountDownLatch
- struts2中<s:select>标签的使用
- Java ConcurrentMap 源码分析
- 详解Java中实现SHA1与MD5加密算法的基本方法
- 20145129 《Java程序设计》第5周学习总结
- java读取文件
- Java中多线程关于wait()和notify()方法的小错误备忘录
- Spring IOC 与AOP
- Java中FileInputStream读写数据时换行处理
- java如何引入接口中定义的常量
- java字符流练习,读文件,将其内容每行倒序写到另一文件
- 经典排序算法(Java版)
- Java Timer 后门
- Eclipse下永久性修改android工程默认包名
- Java 端口映射辅助