【发布时间】:2013-09-03 14:26:23
【问题描述】:
根据JavaDocs,java.lang.Class 的newInstance() 方法无意返回null。
但我的代码似乎证明了相反的情况。为什么?
public Assessment createAssessment() {
Class<? extends Assessment> assessmentClass = (Class<? extends Assessment>) assessmentClassDataTable.getRowData();
try {
System.out.println("ASSESSMENTCLASS " + assessmentClass);
// -> 'ASSESSMENTCLASS class my.model.ManualSelectAssessment'
Assessment a = assessmentClass.newInstance();
System.out.println("ASSESSMENT " + a);
// -> 'ASSESSMENT null'
return a;
} catch (Exception e) {
Application.handleError(e);
}
return null;
}
它返回空值。
【问题讨论】:
-
ManualSelectAssessment的toString方法能否返回"null"? -
想必你确定它没有抛出异常,被捕获然后返回null?
-
确保你的类有一个无参数构造函数
-
您正在打印
a.toString()的结果,而不是“返回”null。看看有没有a == null。 -
当您使用默认构造函数进行实例化时,您的 tostring 方法中有些东西没有价值。
标签: java generics reflection