天天看點

非深入探尋Java反射機制 (Constructor)

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