java.lang.InstantiationException: at java.lang.Class.newInstance(Unknown Source)

Class cla = Class.forName("com.sxit.Object01");
Object01 o2 = (Object01) cla.newInstance();//此处抛出异常

 异常信息:

java.lang.InstantiationException: com.sxit.Object01
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at com.sxit.Object01.main(Object01.java:62)

原因:

debug之后,发现cla.newInstance()的时候,在Class类内部685行会执行以下代码:
arrayOfConstructor = getDeclaredConstructors0(paramBoolean);
这里paramBoolean参数是false,该方法是用来获取该类的无参构造函数,如果没有则返回值为null,继而抛出初始化异常。

 解决办法:

类中加上一个无参构造函数
public Object01(){

}

猜你喜欢

转载自luan.iteye.com/blog/1813850