使用Java Reflection機制,我們可以在運作時探尋一個類的構造函數并且生成該類的執行個體。這些是通過 java.lang.reflect.Constructor 實作的。
Obtaining Constructor Objects
如下方法可以獲得一個類的所有public構造函數
Class myClass = Class.forName("A");
Constructor[] constructors = myClass.getConstructors();
如果知道了構造函數的參數類型,那麼就可以直接查詢該public constructor
A.class檔案
package tao.xiao.action;
public class A implements IT1 {
public A(String s) {}
public A(double x, String y, int[] z) {}
public A(int a) {}
}
HelloJava.class檔案的main部分
Class myClass = Class.forName("tao.xiao.action.A");
Constructor constructor = myClass.getConstructor(new Class[] {String.class});
System.out.println(constructor);
constructor = myClass.getConstructor(new Class[] {double.class, String.class, int[].class});
System.out.println(constructor);
constructor = myClass.getConstructor(new Class[] {int.class});
System.out.println(constructor);
結果為
public tao.xiao.action.A(java.lang.String)
public tao.xiao.action.A(double,java.lang.String,int[])
public tao.xiao.action.A(int)
下一章:非深入探尋Java反射機制(Fields)