次のコードはなぜ使用できないのですか?Javaの汎用クラスメンバーを返すパラメータ化されたメソッド
class MyClass {
List<? extends Something> list;
<T extends Something> List<T> myFunc(T t) {
list = new ArrayList<T>(); // ok
list.add(t); // error
return list; // error
}
}
同じようにコードを修正するにはどうすればよいですか?すなわち、クラスメンバーlist
は、Something
のサブクラスであり、myFunc()
のサブクラスであるオブジェクトのみを受け入れますか?
:あなたは後者の方法で物事のための
List<T>
として作成されたオブジェクトを使用したい場合、あなたは、それを指すようにタイプ list'を使用してください。 Something> list'を拡張します。 –
ordonezalex
List<T>
の変数を維持するために、このようなものが必要あなたはクラスレベルでそれを行う必要があります。つまり、 'list'をローカル変数にして、' List <? 'の代わりに 'List