Java反射機制demo(一)—實例化Class對象,並獲得其他類包名和類型


Java反射機制demo(一)——實例化Class對象,通過對象獲得包名和類型

使用Java中的 本地類作為實驗對象,避免自定義的類帶來的一些不便。

public static void main(String[] args) {
 
try {
Class c1 = Class.forName("java.lang.Integer");
System.out.println(c1.getName());
} catch (ClassNotFoundException e) {
System.out.println("forName出錯");
}
 
Integer i = 1;
Class c2 = i.getClass();
System.out.println(c2.getName());
 
Class c3 = Integer.class;
System.out.println(c3.getName());
}

  上面這段程序中,最后的輸出結果為:

java.lang.Integer
 
java.lang.Integer
 
java.lang.Integer

如果使用基本類型int,只有最后一種方法才好用,因為forName的方式如果只是Integer,而不是java.lang.Integer就會拋出異常,這個方法不會自動的去搜索,只會按照給出的路徑嚴格尋找,尋找不到就拋出ClassNotFoundException。第二種方法也非常方便,但是基本類型就無能為力了,因為java中的8種基本類型不是Object的子類,而第三種方法就會簡潔而且高效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM