我很熟悉lambdas,并且在这行代码中与我所做的错误混淆:
HashMap<Date,ArrayList<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate()));
IntelliJ不会因循环推断而编译.
解决方法
经过一番痛苦,我已经完成了这一切,希望这对他人也是有用的
你不能使用HashMap或者ArrayList – 只要使用接口Map和List,代码应该是:
Map<Date,List<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate));
请注意,在groupBy中的任何参数与Map的声明中预期不相符时,可能会导致相当通用的消息.