獲取方式
1、已知具體的類,通過類的 class 屬性獲取,該方法最為安全可靠,程序性能最高。
2、已知某個類的實例,調用該實例的 getclass() 方法獲取Class對象。
3、已知全類名,且該類在類路徑下,可通過Class類的靜態方法 forName() 獲取,可能拋出 ClassNotFoundException,比較常用。
4、通過類加載器。
實例
@Test
public void test2() throws ClassNotFoundException {
//方式一:調用運行時類的屬性:.class
Classclazz1 = Person.class;
System.out.println(clazz1);//class cn.bruce.java.Person
//方式二:通過運行時類的對象,調用getClass()
Person p1 = new Person();
Class clazz2 = p1.getClass();
System.out.println(clazz2);//class cn.bruce.java.Person
//方式三:調用Class的靜態方法:forName(String classPath)
Class clazz3 = Class.forName("cn.bruce.java.Person");
System.out.println(clazz3);//class cn.bruce.java.Person
System.out.println(clazz1 == clazz2);//true
System.out.println(clazz1 == clazz3);//true
//方式四:使用類的加載器:ClassLoader (了解)
ClassLoader classLoader = ReflectionTest.class.getClassLoader();
Class clazz4 = classLoader.loadClass("cn.bruce.java.Person");
System.out.println(clazz4);//class cn.bruce.java.Person
System.out.println(clazz1 == clazz4);//true
}
以上就是java獲取class實例的4種方式,希望對大家有所幫助。更多關于“java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。