Java 获取Class实例4中方式
-
前提:若已知具体的类,通过类的class属性获取,该方法最为安全可靠,程序性能最高
实例:Class clazz = String.class; -
前提:已知某个类的实例,调用该实例的getClass()方法获取Class对象
实例:Class clazz = “testReflection.Person”.getClass(); -
前提:已知一个类的全类名,且该类在类路径下,可通过Class类的静态方法forName()获取,可能抛出ClassNotFoundException
实例:Class clazz = Class.forName(“java.lang.String”); -
通过类的加载器
ClassLoader cl = this.getClass().getClassLoader();
Class clazz4 = cl.loadClass(“类的全类名”); -
Demo
@Test
public void test4() throws ClassNotFoundException {
//1.调用运行时类本身的.class属性
Class clazz1 = Person.class;
System.out.println(clazz1.getName());
Class clazz2 = String.class;
System.out.println(clazz2.getName());
//2.通过运行时类的对象获取
Person p = new Person();
Class clazz3 = p.getClass();
System.out.println(clazz3.getName());
//3.通过Class的静态方法,此方法体现反射的动态性
String className = "testReflection.Person";
Class clazz4 = Class.forName(className);
System.out.println(clazz4.getName());
//4.通过类的加载器
ClassLoader classLoader = this.getClass().getClassLoader();
Class clazz5 = classLoader.loadClass(className);
System.out.println(clazz5);
}