2014-04-17 31 views
9

Ben bu kod satırında yanlış yapıyorum ne lambdas yeni ve karıştı:halkalı çıkarım java lambda groupingby

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

IntelliJ çünkü döngüsel çıkarımın derlemek olmaz.

cevap

14

ağrı Umarım bunu çalıştı ve ettik biraz sonra bu başkalarına faydalı olacaktır yanı

Sen HashMap veya ArrayList kullanmamalısınız - sadece arabirimler Harita ve Listesini kullanmak, kod okumalısınız:

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

GroupingBy'deki parametrelerden herhangi birinin Map bildirisinde beklenenlerle eşleşmemesi durumunda bu oldukça genel bir iletinin ortaya çıkabileceğini unutmayın.

+0

Hem 'Map' hem de 'List' arayüzüne sahibim ama yine de aynı sorun var – daydreamer

+0

Bir kod snippet'i sağlayabilir misiniz? – Dan

2

() getTradeDate kaldırmak için denemek

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

güzel küçük bir bakıştır: http://www.java8.org/

+0

Yine de aynı sorunu denedim. – Dan