天天看點

Java反射機制學習

什麼是反射

在運作狀态中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調用它的任意一個方法和屬性;這種動态擷取的資訊以及動态調用對象的方法的功能稱為java語言的反射機制。

反射有什麼用

1,在運作時判斷任意一個對象所屬的類;

2,在運作時構造任意一個類的對象;

3,在運作時判斷任意一個類所具有的成員變量和方法;

4,在運作時調用任意一個對象的方法;

5,生成動态代理。

實作Java反射的類

1)Class:它表示正在運作的Java應用程式中的類和接口

2)Field:提供有關類或接口的屬性資訊,以及對它的動态通路權限

3)Constructor:提供關于類的單個構造方法的資訊以及對它的通路權限

4)Method:提供關于類或接口中某個方法資訊

注意:Class類是Java反射中最重要的一個功能類,所有擷取對象的資訊(包括:方法/屬性/構造方法/通路權限)都需要它來實作

編寫Java反射程式的步驟:

1)必須首先擷取一個類的Class對象

例如:

  Class c1 = Test.class;

  Class c2 = Class.forName(“com.reflection.Test”);

  Class c3 = new Test().getClass();

2)然後分别調用Class對象中的方法來擷取一個類的屬性/方法/構造方法的結構 注意:如果要能夠正常的擷取類中方法/屬性/構造方法應該重點掌握如下的反射類

  Field

  Constructor

  Method

在此給出一個總結性的例子:

  

反射調用參數維數組的方法: