首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

JAVA反射机制的一个疑问,该怎么处理

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

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();
}
}
}

热点排行