我试图从 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/