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 に答える