package JavaReflcet;
import org.junit.Test;
public class ClassTest {
/*
获取Class的实例的方式
*/
@Test
public void test1() throws ClassNotFoundException {
// 方式一:调用运行时类的属性: .class
Class clazz = person.class;
System.out.println(clazz);
// 方式2:通过运行时类的对象
person p1 = new person();
Class<? extends person> clazz2 = p1.getClass();
System.out.println(clazz2);
// 方式3:调用Class的静态方法:forName(String classPath)
Class clazz3 =Class.forName("JavaReflcet.person");
System.out.println(clazz3);
// 方式4:使用类的加载器:ClassLoader
ClassLoader classLoader = ReflactionTest.class.getClassLoader();
Class<?> clazz4 = classLoader.loadClass("JavaReflcet.person");
System.out.println(clazz4);
}
}
person的运行时类可以看作单例:
clazz == clazz2 //true
clazz2== clazz3 //true