我有一个类似这样的类:
public class Test {
private final List<ISomeType> things = new LinkedList<ISomeType>();
public <T extends ISomeType> Test(Class<T> clazz, int order) {
for (int i = 0; i < order; i++) {
try {
this.things.add(clazz.newInstance());
} catch (Exception e) {
// stackoverflowers use your imagination
}
}
}
}
我期望并希望 Class clazz 有一个可访问的无参数构造函数。有什么方法可以在编译时强制它存在吗?
最佳答案
无法在编译时强制执行构造函数要求。在运行时,您可以检查 class.getConstructors() 并确保有一个没有参数(或者像您在示例代码中那样捕获异常)。
通常,无参数构造函数要求只是在基类或接口(interface)的 Javadoc 中列出。
关于java - 在编译时强制存在无参数构造函数 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/802315/