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