我是 lambda 的新手,对我在这行代码中做错的地方感到困惑:
HashMap<Date, ArrayList<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate()));
由于循环推理,IntelliJ 无法编译。
最佳答案
经过一番努力,我已经解决了,希望这对其他人也有用
您不能使用 HashMap 或 ArrayList - 只需使用接口(interface) Map 和 List,代码应为:
Map<Date, List<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate));
请注意,当 groupingBy 中的任何参数与 Map 声明中的预期参数不匹配时,可能会导致此相当通用的消息。
关于java - 循环推理 java lambda groupingby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23136533/