java.lang.Class類是反射機制操作的起源,爲了適應不同情況下的反射機制的操作,java提供有三種Class類對象實例化方式。
方式一:利用Object類中提供getClass()方法獲取實例化對象
import java.util.Date;
public class JavaReflectDemo437A {
public static void main(String[] args) {
//【操作特點】需要獲取一個類的實例化對象纔可以獲取Class類實例
Date date=new Date();
Class<?> clazz=date.getClass(); //獲取Class類實例化對象
System.out.println(clazz);
}
}
執行結果
class java.util.Date
方式二:使用“類.class”形式獲取指定類或接口的Class實例化對象
public class JavaReflectDemo437B {
public static void main(String[] args) {
//【操作特點】直接通過一個類的完整名稱可以獲取Class類的實例,需要編寫import或完整類名稱
Class<?> clazz=Member.class;
System.out.println(clazz);
}
}
class Member{}
執行結果
class com.lxh.seventeenchapter.Member
方式三:使用Class類內部提供的forName()方法根據類的完整名稱獲取實例化對象
Class實例化方法:public static Class<?> forName(String className) throws ClassNotFoundException;
public class JavaReflectDemo437C {
public static void main(String[] args) throws ClassNotFoundException {
//【操作特點】通過名稱字符串(包,類)可以獲取Class類實例,可以不使用import導入
Class<?> clazz=Class.forName("com.lxh.seventeenchapter.Member");
System.out.println(clazz);
}
}
執行結果
class com.lxh.seventeenchapter.Member