面试题答案
一键面试import java.util.List;
public class GenericSum {
public static double sum(List<? extends Number> list) {
double total = 0;
for (Number number : list) {
total += number.doubleValue();
}
return total;
}
}
实现思路
- 方法签名:
sum(List<? extends Number> list)
这里使用了通配符?
以及上界extends Number
,表示list
可以是任何Number
子类类型的列表。这样既保证了列表元素都是Number
的子类,符合题目要求。 - 遍历求和:通过
for - each
循环遍历列表,使用Number
类的doubleValue()
方法将每个元素转换为double
类型进行累加,最后返回累加结果。