天天看点

非深入探寻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)