java - 在编译时强制存在无参数构造函数 (Java)

标签 java

我有一个类似这样的类:

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/

相关文章:

java - 在本地网络上查找服务器 ip 地址

java - 不允许用户通过更改系统日期来更新回溯日期的表

java - 我可以在另一个注释中使用属性中的 Spring @Value 变量吗?

java - 在 Java Swing 中显示 Windows 资源管理器类型的文件结构的最简单方法是什么?

java - 如何在保持滑动的同时在屏幕触摸上显示按钮?

java - 将java连接到数据库以制作登录表单

java - 如何在 Java 中使用正则表达式拆分后删除空结果?

部署到 weblogic 时出现 Java LinkageError

JavaFX 与场景生成器 Controller 有关 addAll 错误?

java - checkboxgroup 未出现在面板中