は、このコードスニペットコレクション内の型のサブクラスaを追加するのが不正なのはなぜですか?
//Creates a list of List numbers
List<List<Number>> num = new ArrayList<List<Number>>();
//Creates a list of List doubles
List<List<Double>> doub = new ArrayList<List<Double>>();
//List of doubles
List<Double> d = new ArrayList<Double>();
d.add(2.5);
d.add(2.6);
doub.add(d);
num.add(d);//This code will not compile
なぜそのnum.add(DOUB)は許可されませんさを与えられましたか? List<List<Double>>
のスーパータイプはList<List<Number>>
ではありませんか?
num.add(doub)の代わりにnum.add(d)を意味しましたか? – Alex
'? 'を許可しない限り、一般的な型は正確でなければなりません。サブタイプを拡張するか '?スーパースーパータイプ。 –
コードを編集しました。彼は 'num.add(d)'を意味しました。そうでなければ、質問は面白くない! – romaintaz