Document

利用反射分析类的能力

在java.lang.reflect 包中有三个类 Field 、 Method 和 Constructor 分别用于描述类的域、 方法和构造器。 这三个类都有一个叫做 getName 的方法 , 用来返回项目的名称。 Field 类有一 个getType方法, 用来返回描述域所屈类型的 Class 对象。 Method 和 Constructor 类有能够报告参数类型的方法, Method 类还有一个可以报告返回类型的方法。 这三个类还有一个叫做 getModifiers 的方法, 它将返同一个整型数值, 用不同的位开关描述 public 和 static 这样 的修饰符使用状况。 另外 , 还可以利用 java.lang.reflect 包中的 Modifier 类的静态方法分析 getModifiers 返回的整型数值。 例如, 可以使用 Modifier 类中的 is Public、 is Private 或 isFinal 判断方法或构造器是否是 public 、 private 或 final 。 我们需要做的全部工作就是调用 Modifier 类的相应方法, 并对返回的整型数值进行分析, 另外 , 还可以利用 Modifier.toString 方法将修饰符打印出来。
Class 类中的 getFields 、 getMethods 和 getConstructors 方法将分别返回类提供的 public 域、 方法和构造器数组 , 其中包括超类的公有成员。 Class 类的 getDeclareFields、 getDeclareMethods 和 getDeclaredConstructors 方法将分别返回类中声明的全部域、方法和构造器, 其中包括私有和受保护成员,但不包括超类的成员。