package get_class_method; public class ReflectDemo { /** * @param args */ public static void main(String[] args) { getClassObject1(); getClassObject2(); getClassObject3(); } public static void getClassObject1(){ Person p = new Person(); System.out.println(p.getClass().getName()); } /* * 方式二:重點掌握 * 通過給定類的字符串名稱就可獲得該類的字節碼文件對象,更為擴展。 * (第一種和第三種都不具有擴展性) */ public static void getClassObject2(){ Class<Person> pclass = null; try { /* * 類的名字一定要寫全(包括該類的包) * 因為工程默認的路徑查找時在bin目錄或者src目錄,如果類名不全,就無法找到該類 */ pclass = (Class<Person>) Class.forName("get_class_method.Person"); System.out.println(pclass.getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /* * 方式三: * 任何數據類型都有一個靜態的屬性 .class來獲取其對應類的字節碼文件對象 * 相對簡單,但是還是要明確用到類中的靜態成員。還是不夠擴展! */ public static void getClassObject3(){ Class pclass = Person.class; System.out.println(pclass.getName()); } }
