反射 reflect 初始学习

类也是对象,本身是java.lang.Class 类的对象。

Class的三种表示方式:

1、Class a = A.class; 类名.class的方式。经常在日志记录里面,获取当前类的日志记录生成日志对象是用到。

2、A a = new A();Class a2 = a.getClass();  对象.getClass()的方式,

3、Class a2 = Class.forName("com.lilin.A");  

以上三种方式获取的Class类的对象 a a2  a3 ,他们的关系是a==a2==a3 :原因是一个类只能是Class类的一个实例对象。

用reflect方式获取的类,是可以在运行是加载的,同时也可以创建对象:

a.newInstance();==>获取A类的实例对象,当然,我们在实际使用的时候需要强制转换一下:A a3 = (A)a.newInstance();

原文地址:https://www.cnblogs.com/lilin0719/p/5215563.html