java - Collectors.summingInt 内的减法

标签 java

我试图从 summingInt() 中的 EndTime 中减去 StartTime,但它不起作用,它告诉我“这个表达式的目标类型必须是一个函数式接口(interface)”。

Map<String,Integer> hm = new HashMap<String,Integer>();

    hm = listData.stream()
            .collect(Collectors.groupingBy(MonitoredData::getActivity,
                    Collectors.summingInt( (MonitoredData::getEndTimeSeconds - 
MonitoredData::getStartTimeSeconds)));

最佳答案

Collectors.summingInt 需要一个函数。

所以你必须在那里提供你的转换器功能。

将您的 summingInt 替换为:

Collectors.summingInt(m -> m.getEndTimeSeconds() - m.getStartTimeSeconds())

关于java - Collectors.summingInt 内的减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50356004/

相关文章:

java - 如何从 Angular 通过 springboot 重定向

java - Struts2-同一Action类中不同 Action 之间对象值的持久化

java - 如何以自动方式关闭独立的 Apache Camel 应用程序?

java - 音频编辑网络应用程序

java - LWJGL 游戏未正确结束

java - 我如何在 Android 中升级我的数据库

java - 在 SSL/TLS 握手中的 “server-hello” 消息期间选择证书链的逻辑?

java - 在 Activity 之间发送字符串

java - 如何在Swing中画蛇?

java - 从纸牌游戏中的玩家数组列表中检查获胜者