JAVA反射

1.什么是JAVA的反射?
JAVA的反射,其实就是指java程序在运行的时候,能够获取任意一个对象的具体定义,包括属性定义,方法定义。并且,能够调用对象的方法。虽然和真正的动态语言有区别,但是仍然算是能够在运行时窥探到类的具体细节。

2.如何使用JAVA的反射?
1)反射的起点:java.lang.class
直接获取类的class
Class<Person> pClass = Person.class;

通过名称,获取类的class
try {
    Class<Person> pClass = (Class<Person>) Class.forName("Person");
} catch (ClassNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
}

2)Class提供的信息
获取属性:
Field[] getFields() (只能获取公共字段)
Field[] getDeclaredFields() (获取全部字段)
Field getField(String name)
Field getDeclaredField(String name)
获取方法:
Method getMethod(String name, Class<?>... parameterTypes)
Method getDeclaredMethod(String name, Class<?>... parameterTypes)
Method[] getMethods() (只能获取公共方法)
Method[] getDeclaredMethods() (获取全部方法)

你可能感兴趣的:(java)