反射的三种获取方法
package com.zhan.fanshe1;
/*
* 反射:在运行状态下,通过class文件对象(Class的对象),去使用构造方法,成员变量,成员方法。
*
* 那么,我们是如何获取到class文件对象的呢?(字节码文件对象)
* A:Object类的getClass()方法。
* B:数据类型的静态的class属性
* C:通过Class类的静态方法forName(String className)
*
* 到底使用哪一种呢?
* 开发中用第三种。自己写例子测试可以使用前两种。
* 因为第三种方式可以结合配置文件使用。
*/
public class Test {
public static void main(String[] args) throws ClassNotFoundException {
//方式一:Object类的getClass()方法
Person p = new Person();
Class c = p.getClass();
Person p1 = new Person();
Class c1 = p.getClass();
System.out.println(p == p1);
System.out.println(c == c1);
System.out.println("-------------");
//方式二:数据类型的静态Class属性
Class c3 = Person.class;
System.out.println(c == c3);
System.out.println("-----------");
//方式三:通过Class类的静态方法forName(String className)
Class c4 = Class.forName("com.zhan.fanshe1.Person");
System.out.println(c == c4);
}
private static Class forName() {
// TODO Auto-generated method stub
return null;
}
}
|
|