反射中如何獲取Class類對象

反射概念:

Java反射(Reflection)是一種新的操作類中成員變量、構造方法和普通方法的機制,爲了實現對成員變量、構造方法和普通方法的操作,我們需要藉助Java自身提供的java.lang包下(不需要引包)的Class類和java.lang.reflect包下的反射API 。

Class類(是 Java 反射的核心類,可以獲取類的屬性方法等內容)

Class類是Java 反射機制的入口,封裝了一個類或接口的運行時信息,通過調用Class類的方法可以獲取這些信息。

Class類的特點: 該類在java.lang包中(不需要引包);

該類被final所修飾,即該類不可以被子類繼承;

該類實現了Serializable接口;

該類的構造方法被private所修飾,即不能通過new關鍵字創建該類的對象;

可以通過如下六種方法獲取到Class類實例化對象:

通過Class類靜態forName(“類包名.類名”)獲取Class類實例,建議使用這種形式:

如果泛型不確定可以使用?號代替

 

通過使用類名.class獲取Class類實例:

如果是基本數據類型,則可以通過包裝類.TYPE獲取Class類實例,當然,也可以通過基本數據類型.class獲取Class類實例。

package vinus;

import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;

public class Test {

	public static void main(String[] args) {
	Class clazz=null;
        clazz=Integer.TYPE;
	System.out.println(clazz.getName());
        }
}

如果已創建了引用類型的對象,則可以通過調用對象中的 getClass( )方法獲取Class類實例。

通過元素類型[].class可以獲取數組所對應的Class類實例:

獲取元素爲String類型的數組所對應的Class類對象舉例:

通過調用某個類的Class實例的getSuperClass()方法可以獲取該類超類的Class實例:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章