如何用反射来构造一个一个参数的对象,但我要用null来构造

因为用null作为参数并用反射来构造对象时是调用的默认构造函数。但要反射的类中没有默认构造函数。而且这个一个参数的构造函数的参数类型是不确定的。所以我想用null来调用。但如何做到呢?

[code="java"]import java.lang.reflect.Constructor;

public class Test {
public Test(Integer i) {
if (i == null)
System.out.println("args is null!");
}

public static void main(String[] args) throws Exception {
    Constructor cons = Test.class.getConstructors()[0];
    Class type = (cons.getParameterTypes()[0]);
    Object para = type.cast(null);//这样就能满足你的要求了
    cons.newInstance(para);// 用null做参数,如果构造函数有校验可能通过不了,而且对数据的完整性有影响,不推荐。
}

}[/code]

[code="java"]
Class clazz=null;//自己获取类型
Constructor c=clazz.getConstructors()[0];//如果就一个构造函数
Class[] paraTypes=c.getParameterTypes();//构造函数的参数类型
Class paraType=paraTypes[0];//一个参数的类型
[/code]

[code="java"]public static void main(final String[] args) throws Exception {

Constructor ctor = Test.class.getConstructors()[0];

Class cls = (ctor.getParameterTypes()[0]);

ctor.newInstance(cls.newInstance());// how ??

} [/code]