反射:獲取Class對象的三種方式


獲取Class對象的三種方式 

package lianxiApril18;
/** 
 * 獲取Class對象的三種方式 
 * 1 Object ——> getClass(); 
 * 2 任何數據類型(包括基本數據類型)都有一個“靜態”的class屬性 
 * 3 通過Class類的靜態方法:forName(String  className)(常用) 
 * 
 */  
public class Fanshe {
    public static void main(String[] args) {
         //第一種方式獲取Class對象    
         Student stu1=new Student();//這一new 產生一個Student對象,一個Class對象。
         Class stuClass=stu1.getClass();//獲取Class對象  
         System.out.println(stuClass.getName());
         //第二種方式獲取Class對象  
         Class stuClass2=Student.class;
          System.out.println(stuClass == stuClass2);
         //第三種方式獲取Class對象  
          try {
            Class stuClass3=Class.forName("lianxiApril18.Student");//注意此字符串必須是真實路徑,就是帶包名的類路徑,包名.類名 
             System.out.println(stuClass3 == stuClass2);//判斷三種方式是否獲取的是同一個
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          
     }
}

注意:在運行期間,一個類,只有一個Class對象產生。

三種方式常用第三種,第一種對象都有了還要反射干什么。第二種需要導入類的包,依賴太強,不導包就拋編譯錯誤。一般都第三種,一個字符串可以傳入也可寫在配置文件中等多種方法。


免責聲明!

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



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