У меня есть коллекция, содержащая список ошибок. Я хотел сгруппировать их по ключу (UUID UserId). Для этого я скопировал код из этого ответа: https://stackoverflow.com/a/30202075/4045364
Collection<FilterError> filterErrors = new ArrayList<FilterError>();
// ... some filterErrors get added to the collection ...
return filterErrors.stream().collect(Collectors.groupingBy(w -> w.getUserId()));
Sonar Lint выдает следующую ошибку:
Замените эту лямбду ссылкой на метод.
->
Что я пробовал:
Основываясь на этом вопросе: SONAR: замените эту лямбду ссылкой на метод и Runable Interface: замените этот лямбда со ссылкой на метод. (sonar.java.source не задан. Предполагается, что 8 или выше.)
filterErrors.stream().collect(Collectors.groupingBy(this::getUserId()));
На основе этого вопроса: Замените эту лямбду ссылкой на метод "Objects::nonNull"< /а>
filterErrors.stream().collect(Collectors.groupingBy(UUID::getUserId()));
Оба дают ошибку:
Целевой тип этого выражения должен быть функциональным интерфейсом.
Есть ли способ решить эту проблему с SonarLint?
groupingBy(UUID::getRetailerId)
(еслиw
равноUUID
). - person Kayaman   schedule 06.07.2018TYPEOFw::getUserId
? - person Ben   schedule 06.07.2018