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

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())

08-16 14:56