在Collectors.summingInt中减法

时间:2018-05-15 17:21:04

标签: java

我试图在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)));

1 个答案:

答案 0 :(得分:3)

Collectors.summingInt需要一个功能。

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

将此summingInt替换为:

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