有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (2) 个答案

  1. # 1 楼答案

    在Java中无法做到这一点。由于构造函数不是继承的,所以除非子类中没有构造函数,否则无法强制存在零参数构造函数。如果是这种情况,那么默认情况下,对象将获得零参数构造函数。您可以利用super关键字来调用父级的构造函数

  2. # 2 楼答案

    在Java中不能强制任何构造函数签名

    您最好在运行时检测问题并抛出/传播一个RuntimeException。例如,序列化机制就是这样做的

    再进一步,如果可能的话,放弃对.newInstance()的依赖,做一个注释@FactoryMethod,并在工厂方法的static方法上使用它:

    public class Foo {
    
        @FactoryMethod
        public static Foo createFoo() {
           return new Foo();; // or use another constructor, if there is no default?
        }
        ...
    }