Поиск по коллекции Set

253
01 февраля 2019, 21:50

У меня есть объект ролей в котором есть Set названий ролей, я хочу сделать проверку, по наличию у пользователя той или иной роли. Подскажите как лучше это сделать, чтобы было красиво и лаконично.

Roles.java:

@Table(name = "roles")
public class Role {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Enumerated(EnumType.STRING)
    @NaturalId
    @Column(length = 60)
    private RoleName name;

RoleName.java:

public enum RoleName {
    ROLE_ADMIN,
    ROLE_MANAGER,
    ROLE_CLIENT,
    ROLE_USER,
}

сейчас мой поиск выглядит вот так:

boolean isFind = false;
        for (Role role : user.getRoles()) {
            isFind = role.getName().equals(RoleName.ROLE_CLIENT);
            if (isFind) break;
        }

Но мне не очень нравиться такой способ. Можете предложить вариант по лучше?

Answer 1
return user.getRoles()
           .stream()
           .map(Role::getName)
           .anyMatch(r -> r.equals(RoleName.ROLE_CLIENT));
READ ALSO
Унаследование в классе

Унаследование в классе

Есть клас унаследованый от веб сокет сервера, выглядит примерно так

273
Не получается получить доступ к функции другого класса

Не получается получить доступ к функции другого класса

У меня есть уже несколько вопросов связанных с этой задачей, вот например этот Как заполнить массив числами long которые получаются при выборе...

279
Обязательно ли всегда проверять на null?

Обязательно ли всегда проверять на null?

Новичок в java и android, учусь по книжке, там дают код без проверок на null, но andorid studio постоянно подсвечивает, что метод может вернуть nullВидел ответы,...

230
Некорректно отображаются символы

Некорректно отображаются символы

Всем привет! Ситуация такая: я сделал jar-файл для selenium (скрипт для автозаполнения), который считывает данные изcsv и записывает эти данные в поля...

253