@avgona_pl

Как получить значения с листов с непубличного класса?

Добрый вечер ! Хотел бы добавить роли а так же права в переменную authorities, но не до конца ещё подружился со стримам, а надо сейчас:(. Могли бы помочь?

Класс с которого нужно доставать данные:
60c1209523cba698664432.png

UserDetails который мапит данные в authorities
60c120a8cfe75313160855.png

И всё было бы прекрастно, но они находятся в default классе)
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
Ваша проблемма (кроме безграничной любви к скрин-шотам), в том, что вы пытаетесь создать стрим из разнородных объектов, из строки и двух списков.
Варианты:

Обернуть строку в лист:

return Stream.of(assetTemplateIds,
                taskTemplatesIds,
                List.of(name)).flatMap(SimpleGrantedAuthority::new)
                .collect(Collectors.toList());


Либо для сложения стримов используйте Stream.concat:
var templatesIds = Stream.concat(
                assetTemplateIds.stream(),
                taskTemplatesIds.stream()
        );
        
       return Stream.concat(
                templatesIds,
                Stream.of(name)
        ).map(SimpleGrantedAuthority::new)
                .collect(Collectors.toList());
Ответ написан
Комментировать
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Вы хотите получить что-то типа такого?

List<String> assetTemplateIds = rights.stream().flatMap(rightsList -> rightsList.getAssetTemplateIds().stream()).collect(Collectors.toList());
List<String> taskTemplatesIds = rights.stream().flatMap(taskTemplatesList -> taskTemplatesList.getTaskTemplatesIds().stream()).collect(Collectors.toList());
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы