【发布时间】:2012-08-30 14:49:33
【问题描述】:
鉴于此代码 sn-p
//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<Number>> 不是超级类型
List<List<Double>>?
【问题讨论】:
-
您的意思是 num.add(d) 而不是 num.add(doub)?
-
泛型类型必须准确,除非您允许
? extends子类型或? super超类型。 -
我编辑了代码。他的意思是
num.add(d),否则这个问题就没意思了!
标签: java generics wildcard pecs