package cn.ms.test; public class GetClassObject { public static void main(String[] args) { getClassObjectMethod1(); getClassObjectMethod2(); getClassObjectMethod3(); } /* * 方式一 * 通過對象獲得 * */ private static void getClassObjectMethod3() { GetClassObject getClassObject1 = new GetClassObject(); System.out.println(getClassObject1.getClass().getName()); } /* * 方式二 重點掌握 * 通過給定類的字符串名稱(全類名)就可獲得該類的字節碼文件對象,更為擴展。 * (第一種和第三種都不具有擴展性) * */ private static void getClassObjectMethod2() { Class<GetClassObject> getClassObject2 = null; try { getClassObject2 = (Class<GetClassObject>) Class.forName("cn.ms.test.GetClassObject"); System.out.println(getClassObject2.getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /* * 方式三 * 任何數據類型都有一個靜態的屬性 .class來獲取其對應類的字節碼文件對象 * 相對簡單,但是還是要明確用到類中的靜態成員。還是不夠擴展! * */ private static void getClassObjectMethod1() { Class getClassObject3 = GetClassObject.class; System.out.println(getClassObject3.getName()); } }