在第二篇我有讲过如何获取Class文件对象,所以我就不再过多的进行阐述了
先创建两个类 这里我已经写好了Demo_01主方法 及test_01的三个不同权限修饰符的成员变量
然后我们翻看api,找啊找 终于找到了这两个和成员变量有关的方法
那稍微理解一下应该第一个方法是获取单个Field对象,下面的是获取所有的Field对象
然后我用了一下下面那个方法 Field[] f = test.getFields(); 然后遍历一下 发现只遍历到了一个Field对象,为什么呢? 我们继续翻看API
原来是两条漏网之鱼
现在把Declared加上再遍历试试
恩,这就没问题了
那如何获取这个变量的值呢?
首先我们先写一个构造方法,并实例化一个新的对象
这里我为了简便先用链式编程了。 - test_01 cc= (test_01) test.getConstructor(String.class, int.class, double.class).newInstance("fff", 5, 5d);
复制代码然后我想获取那个String值怎么办呢?
我们先看一下api 发现在Field类中有
那在这之前呢 我先获取那个String字段所对应的Field对象 - Field f = test.getDeclaredField("a");
复制代码那个“a” 即为变量名
然后我们通过输出 System.out.println(f.get(cc)); yeah!
|