簡體   English   中英

Java collect函數給出了循環推理錯誤

[英]Java collect function gives cyclic inference error

鍵入以下代碼時,我在groupingBy函數的參數上出現“循環推理”錯誤:

Map<String, User> mapByEmail = users.stream().collect(Collectors.groupingBy(User::getEmail));

我發現這令人困惑,因為以下不會導致任何問題:

users.stream().collect(Collectors.groupingBy(User::getEmail));

這兩個都沒有:

List<User> listByEmail = users.stream().collect(Collectors.groupingBy(User::getEmail)).values().stream().reduce(null, (a,b)-> a=b);

所以問題是,什么是循環推理,我該如何避免呢?

編輯感謝您的回答。 經過進一步研究后,我發現我需要通過以下方式減少我的結果:

 Map<String, User> mapByEmail = users.stream().collect(Collectors.groupingBy(User::getEmail, Collectors.reducing(new User(),(a,b)-> a=b)));

問題是您的結果類型不正確。 它應該是Map<String, List<User>>

Map<String, List<User>> mapByEmail = users.stream()
                                          .collect(Collectors.groupingBy(User::getEmail));

錯誤消息看起來令人困惑,但代碼中確實存在錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM