08/08/30 00:55:29
>>720
それだけじゃ>>724みたいな結論にたどり着けないっすよ先輩。
理解してる人しか理解できないヒントというか何というか。
>何故、List<Child> と書かないのですか?
Genericsの勉強中に、クラス間に継承関係があっても
List<Base> = new ArrayList<Child>();
のような事はできませんが、
<? extends Base>を使えば可能、という記述を見つけたので
試していただけです。で、add()ができないのは何故かと。
>>724
仮に可能であれば、
Child hoge = list.get(0);
とした時にChild1やChild2を返してしまいClassCastExceptionが発生するため危険、
という事でいいですか?
List<? extends Base>#get()の返り値の型をBase型として返せば
いいような気もしますが、それもやはり不都合があるんでしょうか。