反射心得
来源:互联网 发布:java并发书籍 编辑:程序博客网 时间:2024/05/17 02:48
//获取反射字节码文件Class c=Class.forName("test.Person");//获取带参构造对象Constructor con = c.getConstructor(String.class,int.class,String.class);//通过带参的构造方法创建对象Object obj = con.newInstance("林青霞",27,"北京");System.out.println(obj);
/** * 通过反射获取成员变量并使用 * * private Person(String name){ super(); this.name=name; } * * Person p=new Person("大雨"); System.out.println(p); */public class FanseDemo4 {public static void main(String[] args) throws Exception {// 获取反射字节码文件Class c = Class.forName("test.Person");// 获取取成员变量并使用// //这个getDeclaredFields是获取所有的成员变量// Field[] fields = c.getDeclaredFields();// 这个getFields是获取public的成员变量/* * Field[] fields = c.getFields(); for (Field field : fields) { * System.out.println(field); } */// 获取单个成员变量// adrress并对他赋值// 获取无惨构造对象Constructor con = c.getConstructor();// 通过无参的构造方法创建对象Object obj = con.newInstance();// System.out.println(obj);Field fieldadrress = c.getField("adrress");/** * 反射,今天有点类型adrress.p public void set(Object obj, Object value) throws * IllegalArgumentException, IllegalAccessException将指定对象变量上此 Field * 对象表示的字段设置为指定的新值。 如果底层字段的类型为基本类型,则对新值进行自动解包 adrress.p(北京) * 给obj(是Person的对象)的对象的字段fieldadrress设置为北京 */fieldadrress.set(obj, "北京");// System.out.println(obj);// 没有找到这个方法 java.lang.NoSuchFieldException说明我们的name是私有的// java.lang.IllegalAccessException非法的访问异常,所以要暴力访问//Field fieldadrress1 = c.getDeclaredField("name");fieldadrress1.setAccessible(true);fieldadrress1.set(obj, "大雨");System.out.println(obj);
0 0
- 反射心得
- 反射心得
- 反射的心得与不得
- java基础反射的心得
- chromatron,反射镜游戏一代心得
- 关于反射程序集的心得
- Java反射的机制的一点心得
- 从反射机制中 得到的一点类型转换心得
- 学习反射时的一些感受和心得
- 游戏引擎C++反射和序列化方案心得
- 心得22--JDK新特性6-反射1-反射入门及Class类
- 心得!
- 心得
- 心得
- 心得
- 心得
- 心得!
- 心得
- console监控tomcat 的JVM内存(远程、linux、windows)
- Map.Entry 类使用简介
- iframe高度自适应、载入完成事件
- 蓝桥杯练习试题——十六进制转换成八进制
- Python Hashmap/Dictionary 使用指南
- 反射心得
- 蓝桥杯练习试题——十六进制转换成十进制
- Comparable和Comparator区分以及使用
- GO语言学习笔记3(函数接口并发)
- 14-也许我们应该看清目标,保持沉默
- 百度网盘离线下载分析及实现
- 迅雷5处理千至万级url下载
- 【Linux探索之旅】第二部分第七课:软件安装,如虎添翼
- 【Linux探索之旅】第二部分第八课:RTFM 阅读那该死的手册