日期:2014-05-20  浏览次数:20651 次

JAVA反射机制的一个疑问
一个类只有一个有参数的构造函数,
请问可以用Class.forName()来创建这个类的对象吗?

------解决方案--------------------
不能,因为这时候必须在构造对象的时候提供参数,否则,怎么初始化对象呢?
------解决方案--------------------
反射只能调用无参的构造方法,需要反射的类都必须提供无参的构造方法
------解决方案--------------------
import java.lang.reflect.*;

public class Test5
{
public Test5(int i)
{
System.out.println(i);
}

public static void main(String[] args)
{
try {
Constructor constructor = Test5.class.getDeclaredConstructor(new Class[]{int.class});
Test5 test5 = (Test5)constructor.newInstance(new Object[]{new Integer(2)});
} catch (Exception e) {
e.printStackTrace();
}
}
}