1

在Java中,有没有办法强制任何实现接口的类都具有无参数构造函数的约束?如果不能,你可以强制它有一个返回类实例的工厂吗?

4

3 回答 3

2

在Java中,有没有办法强制任何实现接口的类都具有无参数构造函数的约束?

不是在编译时,不是。

如果不能,你可以强制它有一个返回类实例的工厂吗?

不是在编译时,不是。

当然,单元测试可以同时检查这两种情况,前提是您可以确定要检查的类型。

于 2012-08-02T14:38:52.580 回答
1

不,对双方。不过,一般来说,您既不想也不需要这样做。

于 2012-08-02T14:39:13.860 回答
1

不在接口上,但是可以写一个带有工厂方法的类:

public abstract class Foo {

    private Foo() {}

    public static Bar createBar() {
        return new BarImpl();
    }

}

public interface Bar {}

Bar myBar = Foo.createBar();

这就是Java 在Calendar.java 等类上公开其工厂方法的方式。

于 2012-08-02T15:12:55.103 回答