一 运行时类型信息:
(1)java中在运行时识别对象和类的信息主要有两种方式:
*一种是传统的RTTI:假定在编译时已经知道了所有的类型。
*一种是反射机制(java.lang.reflect包):允许在运行时发现和使用类的信息。
(2)RTTI和反射机制的本质区别:
*RTTI是编译器在编译时打开和检查.class文件。
*反射机制是在运行时打开和检查.class文件的。
二 RTTI:
(1)Class对象用来保存类型信息,Java使用Class对象来执行其RTTI。
(2)每个类都有一个Class对象。
(3)生成Class对象引用的三种方式:
*Class.forName()
*对象.getClass()
*类.class
三 反射机制:
(1)Class类和java.lang.reflect类库对反射提供支持,reflect类库包含Field、Method和Constructor类。
(2)使用Constructor创建新的对象,用get()和set()方法读取和修改与Field对象关联的字段,用invoke()方法调用与Method对象关联的方法。