在 Set 集合中搜索

我有一个 Role 对象,其中有一组 Rolenames,我想检查用户是否具有特定角色。告诉我如何最好地做到美观和简洁。


角色.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;

角色名称.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;

        }

但我真的不喜欢这种方式。你能提出更好的选择吗?


MM们
浏览 109回答 1
1回答

收到一只叮咚

您可以使用流,例如:boolean isFind =     user.getRoles()        .stream()        .map(Role::getName)        .anyMatch(n -> n == RoleName.ROLE_CLIENT);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java