【发布时间】:2021-09-18 15:27:50
【问题描述】:
在https://docs.oracle.com/javase/tutorial/java/generics/upperBounded.html,建议实现一个方法
public static double sumOfList(List<? extends Number> list) {
double s = 0.0;
for (Number n : list)
s += n.doubleValue();
return s;
}
然后调用它
List<Integer> li = Arrays.asList(1, 2, 3);
System.out.println("sum = " + sumOfList(li));
- 为什么输入
public static <T> double sumOfList(List<T extends Number> list)是非法的? -
public static <T extends Number> double sumOfList(List<T> list)是否等效?如果是这样,是不是风格不太好? - 在使用上述代码时,为什么写
System.out.println("sum = " + sumOfList<Integer>(li));是非法的?
【问题讨论】:
标签: java generics generic-list