使用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)