java - 概括一个方法

标签 java generics java-8 java-stream

我得到了这个方法

public static Integer addCollectionElements(List<Integer> list) {
    return list.stream().reduce(0, Integer::sum).intValue();
} 

我想将其推广到任何实现方法 sum 的类(例如 Float)。

是否可以通过使用 Java 泛型来实现这一点?

最佳答案

不幸的是,Number基类没有 sum 方法,所以你不能直接这样做。但是,您可以对收到的每个 Number 调用 doubleValue(),并将它们相加为 double 值:

public static double addCollectionElements(List<? extends Number> list){
    return list.stream().mapToDouble(Number::doubleValue).sum();
}

关于java - 概括一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42986510/

相关文章:

map 的 Java 方法引用 - IntelliJ 警告

java - 如何在我的 java 项目中引用 Maven 依赖项的单元测试类?

java - 如何将字节数组转换为 DSA 私钥?

java - JComboBox 是原始类型。对泛型类型 JComboBox<E> 的引用应该被参数化

typescript - 如何在 Typescript 中使用可变元组类型?

java - JAVA 8 中的 CMSMarkStackSizeMax 参数

Java - Android - view.getContext() 含义

java - 调用具有通用参数的方法

java - 使用 Java 库的 Scala 不指定集合的​​类型参数

java - 如何在 Java 中创建采用优先级列表进行比较的比较器?