反射可以结合Java的字节码,使用ASM和cglib等库,还能动态生成类。 hibernate的延迟载入,spring的AOP都是这么实现的
java 反射 :
在运行时判断任意一个对象所属的类。
在运行时构造任意一个类的对象。
在运行时判断任意一个类所具有的成员变量和方法。
在运行时调用任意一个对象的方法
Reflection
由java.lang.reflect
Class类:代表一个类。
Field 类:代表类的成员变量(成员变量也称为类的属性)。
Method类:代表类的方法。
Constructor 类:代表类的构造方法。
Array类:提供了动态创建数组,以及访问数组的元素的静态方法
getName():获得类的完整名字。
getFields():获得类的public类型的属性。
getDeclaredFields():获得类的所有属性。
getMethods():获得类的public类型的方法。getMethod(String name(方法名称), Class[方法中的参数类型] parameterTypes)
getDeclaredMethods():获得类的所有方法。getConstructor(Class[构造方法中的参数类型] parameterTypes)