1

私が何を意味しているのかを明確にするための例を次に示します。2 つのクラスがあるとします。

class A {
    boolean isEqual(A instance);
}

class B {
    boolean isEqual(B instance);
}

Javaで次のようなインターフェースを定義する可能性はありますか

interface I {
    // signature for isEqual(...) here
}

すべての実装の isEqual メソッドが実装タイプのパラメータを取るようにするには? お気に入り

class C implements I {
    boolean isEqual(C instance);
}

前もって感謝します!

4

2 に答える 2

1

Javaで次のようなインターフェースを定義する可能性はありますか...

はい、一般的な形式で:

public interface I<T> {
    public boolean isEqual(T instance);
}

public class C  implements I<C> {

    @Override
    public boolean isEqual(C instance) {
        return false;
    }    
}

または、たとえば、 classがスーパークラスを継承している場合A、としましょう。BCDD

したがって、次のように書くことができます。

interface I {
   boolean isEqual(<? extends DD> instance);
}
于 2013-10-08T12:13:12.027 に答える