反射其实就是照镜子的过程,通过照镜子,镜子里的镜像能获取你的属性和行为
- 首先要先有一个定义了自身的本体(Class A),里面必须有一个无参的构造函数
- 所有的镜子(任意的类)都可以通过照镜子这个行为去获取本体的信息
- 照镜子有三种方法,需要先声明一个镜像(Class c)
- 给这个镜像赋值的过程就相当于照镜子,照完镜子后镜像就获取了本体的信息了
- 接下来镜子就可以通过镜像来得到本体的信息(c.newInstance())
Class A{
public A(){
}
public A(String a){
}
}
Class B{
Class c;
public static void main(String[] args){
// 方法一:直接通过类名.class方式获得
c = A.class;
// 方法二:通过对象的getClass()方法获取,通常不知父类是什么的时候才用
Object a = new A;
c = a.getClass();
// 方法三:通过全类名获取,但可能抛出ClassNotFoundException异常
c = Class.forName("com.laiyin.Text.A");
// c.newInstance()创建了类对象,调用了A类的无参构造器,
// 这就是为什么必须要定义无参构造函数的原因
Object o = c.newInstance();
System.out.println(o);
}
}
版权声明:本文为qq_35699070原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。