[英]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.