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