反射
Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作对象的内部属性和方法。
Java反射机制提供的功能
- 在运行时判断任意一个对象所属的类。
- 在运行时构造任意一个类的对象。
- 在运行时判断任意一个类的成员变量和方法。
- 在运行时调用任意一个对象的成员变量和方法。
- 生成动态代理。
Class类
对于每个类而言,JRE都为其保留一个不变的Class类型的对象。一个Class对象包含了某个特定类的有关信息。
- Class本身也是一个类。
- Class对象只能由系统建立对象。
- 一个类在JVM中只会有一个Class实例。
- 一个Class对象对应的是一个加载到JVM中的.class文件。
- 每个类的实例都会记得自己是由哪个Class实例所生成的。
- 通过Class可以得到一个类的完整结构。