2014-04-17 15 views
9

Jestem nowy lambdas i mylić z tym, co robię źle w tej linii kodu:cykliczny wnioskowanie java lambda groupingby

HashMap<Date, ArrayList<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate())); 

IntelliJ nie zostanie skompilowany z powodu cyklicznego wnioskowania.

Odpowiedz

14

Po kawałku bólu Pracowałem go i mam nadzieję, że będzie to przydatne dla innych jak dobrze

musisz wolno używać HashMap lub ArrayList - wystarczy korzystać z mapy, interfejsy i listy, kod powinien brzmieć:

Map<Date, List<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate)); 

Należy zauważyć, że ten dość ogólny komunikat mógł zostać wywołany, gdy którykolwiek z parametrów w groupingBy nie jest zgodny z oczekiwanym w deklaracji mapy.

+0

Mam interfejs "Map" i "List", ale wciąż mam ten sam problem. – daydreamer

+0

Czy możesz podać fragment kodu? – Dan

2

spróbować usunąć() na getTradeDate

HashMap<Date, ArrayList<Trade>> groupTrades = allTrades.stream().collect(Collectors.groupingBy(Trade::getTradeDate)); 

Oto miły mały przegląd: http://www.java8.org/

+0

Próbowałem, ale wciąż ten sam problem. – Dan