1.反射机制最重要的内容:检查类的结构
在java.lang.reflect包中有三个类Field、Method和Constructor分别用来描述类的域、方法和构造器。三者都有一个getName的方法,用来返回项目的名称。Field类有一个getType方法,用来返回描述域所属类型的Class对象。Method 和Constructor 类有能够报告参数类型的方法,Method类还有可以报告返回类型的方法。
这三个类还有一个getModifiers的方法,它将返回一个整型数值,用不同的位开关描述public和static这用的修饰符使用状况。
调用Modifier类的相应方法,并对返回的整型数值进行分析,还可以利用Modifier.toString方法将修饰符打印出来。
2.使用反射分析对象分两步:
a)获取对用的Class对象
b)通过Class对象调用getDeclaredFields
查看对象域的关键方法是Field类中的get方法。反射机制的默认行为受限制于Java的访问控制,需要调用Field、Method和Constructor对象的setAccessible方法。
调用f.set(obj, value)可以将obj对象的f域设置成新值。
例子:Employeeharry = new Employee(“Harry Hacker”, 2500, 9, 8, 1992);
Class cl = harry.getClass;
Field f = cl.getDeclaredField(“name”);
Object v = f.get(harry); //Harry Hacker