1.Class对象的创建是由jvm完成的,一个类被加载后会自动的生成这个类的Class对象;
2.获取类对象的方法
-
使用类方式获取
-
使用全限定名称
-
使用对象获取对象
简单的使用:
package com.ydlclass.reflect;
public class TestClass {
public static void main(String[] args) throws ClassNotFoundException {
//使用类的名称获取Class对象,比如之前多线程使用synchronized关键字的方式
Class<Dog> dogClass = Dog.cla***全限定名称的方式
Class<?> aClass1 = Class.forName("com.ydlclass.reflect.Dog");//抛出一个检查性的异常,有可能找不到这个类
//使用对象获取Class对象
Dog dog = new Dog();
Class<? extends Dog> aClass = dog.getClass();
System.out.println(dogClass == aClass);
System.out.println(dogClass == aClass1);//结果说明了,不管是使用者三种方式的哪一种获取Class对象,都是相同的
}
}