ジェネリックスのサブクラスが代入できない問題
サブクラスはスーパークラスに代入できる(サブタイプはスーパータイプに代入できる)
Integer n = new Integer(); Number n2 = n;
サブクラスの配列はスーパークラスの配列に代入できる
Integer nn = new Integer{};
Number[] nn2 = nn;
しかし
サブクラスのリストはスーパークラスのリストに代入できない
Listnn = new ArrayList (); List nn2 = nn;
なんだろう?安全にキャストできるように見えるが、違うのかな。ちょっと痒い。
無理にキャストは可能だが。。。
Listnn2 = (List)nn;