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()); } }