正文
Class类 获取Class对象
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
阅读API的Class类得知,Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的
获取Class对象的三种方式(实例采用Person类)
方式1:通过Object类的getObject()方法
Person p = new Person();Class c = p.getClass();
方式2: 通过 类名.class 获取到字节码文件对象(任意数据类型都具备一个class静态属性,看上去要比第一种方式简单)。
Class c2 = Person.class;
方式3: 通过Class类中的方法(将类名作为字符串传递给Class类中的静态方法forName即可)。
Class c3 = Class.forName("Person");
l 注意:第三种和前两种的区别
前两种你必须明确Person类型.
后面是指定这种类型的字符串就行.这种扩展更强.我不需要知道类名.我只提供字符串,按照配置文件加载就可以了
代码演示:
public class ReflectDemo {public static void main(String[] args) throws ClassNotFoundException {//通过Object类的getObject()方法Person p = new Person();Class c1 = p.getClass();System.out.println(c1);//类名.class 获取到字节码文件对象Class c2 =Person.class;System.out.println(c2);//通过Class类中的方法forName()Class c3 = Class.forName("cn.shiqi.demo1.Person");System.out.println(c3);}}
class Person{}