5

次のような抽象クラスがあるとしましょう

abstract class Parent<V> {

    protected static <T extends Parent<V>, V> T newInstance(
        final Class<T> type, final V value) {
        // ...
    }
}

以下の子クラス内

class Child extends Parent<XXX> {

    public static Child newInstance1(final XXX value) {
        // ...
    }

    public static Parent<XXX> newInstance2(final XXX value) {
        // ...
    }
}

どちらが好ましいですか?newInstance1またはnewInstancw2

4

2 に答える 2

4

実際には、を使用しているシナリオによって異なりますnewInstance()。ほとんどの一般的なケースでは:

Child実装しているのでnewInstance()、私によると

protected static Child newInstance() 
{
    // ...
}

より適切でしょう。

于 2013-03-12T05:58:21.697 に答える
1

通常、一部のクラス内で定義されたファクトリ メソッドは、この特定のクラスのインスタンスを返すため、次のようにする必要があります。

public class Foo ...
{
    public static Foo newInstance ()
    {
        ...
    }
}

このクラスが拡張するクラスと実装するインターフェイスに関係なく。

于 2013-03-12T06:07:55.993 に答える