我有一个 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; }但我真的不喜欢这种方式。你能提出更好的选择吗?
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
您可以使用流,例如:
boolean isFind =
user.getRoles()
.stream()
.map(Role::getName)
.anyMatch(n -> n == RoleName.ROLE_CLIENT);
添加回答
举报
0/150
提交
取消