獲取方式
1、已知具體的類,通過類的 class 屬性獲取,該方法最為安全可靠,程序性能最高。
2、已知某個(gè)類的實(shí)例,調(diào)用該實(shí)例的 getclass() 方法獲取Class對(duì)象。
3、已知全類名,且該類在類路徑下,可通過Class類的靜態(tài)方法 forName() 獲取,可能拋出 ClassNotFoundException,比較常用。
4、通過類加載器。
實(shí)例
@Test
public void test2() throws ClassNotFoundException {
//方式一:調(diào)用運(yùn)行時(shí)類的屬性:.class
Classclazz1 = Person.class;
System.out.println(clazz1);//class cn.bruce.java.Person
//方式二:通過運(yùn)行時(shí)類的對(duì)象,調(diào)用getClass()
Person p1 = new Person();
Class clazz2 = p1.getClass();
System.out.println(clazz2);//class cn.bruce.java.Person
//方式三:調(diào)用Class的靜態(tài)方法: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實(shí)例的4種方式,希望對(duì)大家有所幫助。更多關(guān)于“java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來試聽。