反射:反射就是把Java类中的各种成分映射成相应的java类。具体就是先得到一个Field(字段,通常都是变量)们映射的Class的实例对象--一份字节码。然后在通过它们操作具体的类对象。
比如:
Constructor:得到一个Constructor[] constructors = Class.forName(“java.lang.String”).getConstructors();,通过调用它的newInstance得到这个constructors所在的类的新对象。String str = (String)constructor.newInstance(new StringBuffer(“abc”))。
Field:得到一个类中的Field,再通过Field操作这个类中的Field对应的具体成员变量。如果这个变量是私有的,还可以通过暴力反射对这个变量进行操作。 |