use*_*540 3 java generics java-8 java-stream
我有这个方法
public static Integer addCollectionElements(List<Integer> list) {
return list.stream().reduce(0, Integer::sum).intValue();
}
Run Code Online (Sandbox Code Playgroud)
我想推广到任何实现方法总和的类(例如Float).
是否可以通过使用Java Generics实现这一目标?
不幸的是,Number基类没有sum方法,所以你不能直接这样做.但是,你可以做的就是给你收到的doubleValue()每个人打电话Number,并将它们作为双打来加:
public static double addCollectionElements(List<? extends Number> list){
return list.stream().mapToDouble(Number::doubleValue).sum();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |