私がコンパイルしようとした次のコードでは:
List<Animal> animals;
List<? extends Animal> some;
animals = some;
次のエラーが発生しました。
Type mismatch: cannot convert from List<capture#2-of ? extends Animal> to List<Animal>
しかし、含むリスト<? extends Animal>
には少なくともAnimal
タイプが含まれていることが保証されているのに、なぜこのエラーが発生するのでしょうか? これは、許可されている場合、ランダムなサブクラス オブジェクトAnimal
を「動物」リストに入れることができるためですか、それとも何か他のものですか?