我试图在summingInt()中从EndTime中减去StartTime,但它不起作用,它告诉我“这个表达式的目标类型必须是一个功能接口”。
Map<String,Integer> hm = new HashMap<String,Integer>();
hm = listData.stream()
.collect(Collectors.groupingBy(MonitoredData::getActivity,
Collectors.summingInt( (MonitoredData::getEndTimeSeconds -
MonitoredData::getStartTimeSeconds)));
答案 0 :(得分:3)
Collectors.summingInt
需要一个功能。
所以你必须在那里提供转换器功能。
将此summingInt
替换为:
Collectors.summingInt(m -> m.getEndTimeSeconds() - m.getStartTimeSeconds())