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