Java Generic type:之间有什么区别
(1) List extends Number>
(2) List
根据我的理解
(1)List extends Number> 是具有超类“ Number”的“未知”数据类型的只读列表。我们只能读取元素,但不能添加
(2)List 具有超类“ Number”的数据类型列表。我们可以 阅读并将 元素 添加 到列表中
请参见下面的代码示例
class TestGen{
public static void main(String[] args) {
double result = 0.0;
List intList = new ArrayList();
intList.add(10);
intList.add(20);
intList.add(30);
result = TestGen.sumOfList1(intList);
System.out.println("Result=" + result);
result = TestGen.sumOfList2(intList);
System.out.println("Result=" + result);
}
public static double sumOfList1(List extends Number> list) {
double s = 0.0;
for (Number n : list)
s += n.doubleValue();
return s;
}
public static double sumOfList2(List list) {
double s = 0.0;
// getting error while trying to add new element
// list is not applicable for argument(Integer) : Why ?
list.add(new Integer(40));
for (Number n : list)
s += n.doubleValue();
return s;
}
}
当我尝试将Integer(甚至Number对象)添加到sumOfList2时,出现错误。请在这里说明问题是什么?