6

Aジェネリック型のインターフェースがあるとしましょう:

public interface A<T> {
    T getT();
}

Bそしてそれを実装するクラス:

public class B implements A {
    public Integer getT() { return 1; }
}

...しかし、型パラメーターを指定しません。

そこで何が起こるの?Abe は を推論しA<Integer>ますか? implementsユーザーにステートメント(のような)で型パラメーターを書き込むように強制することは可能B implements A<Integer>ですか?

4

4 に答える 4

6

あなたの質問:

そこで何が起こるの?

ジェネリック型を省略したため、システムはそれを と推測しましたObject。次のようにしても同じ結果が得られます。

    public class B implements A<Object> { 
        ...
    }

次の問題:

ユーザーに型パラメーターを実装で強制的に書き込むことは可能ですか (B が A を実装するように)

はい。こうやって:

    interface A<T extends Integer> 

お役に立てれば。

于 2013-05-13T00:55:23.557 に答える
-1

そこで何が起こるの?まあ、整数はオブジェクトを拡張するので、うまく動作するので、実装でパラメータを追加することをお勧めします

于 2013-05-12T10:19:47.370 に答える