java - 使用 Java 8 Stream API 检查枚举列表
问题描述
这里是 Java 8。我有以下课程:
public enum Role {
Admin,
FunUser,
SeriousUser,
...
BasicUser;
}
@Getter
@Setter
public class User {
private String login;
private List<Role> roles;
...
}
我想使用 Stream API 编写一些代码来检查当前用户是“Admin”还是“SeriousUser”。
到目前为止,我最好的尝试仍然不是 Java 8ish:
if (user.getRoles().contains(Role.Admin) || user.getRoles().contains(Role.SeriousUser)) {
...
}
有没有办法通过 Java 8 Stream API 对几个“樱桃采摘”角色执行此枚举检查?
解决方案
其他选项:
if(Stream.of(Role.Admin, Role.SeriousUser).anyMatch(user.getRoles()::contains)){
...
}
推荐阅读
- javascript - axios put 不发生投掷禁止
- python - 为什么我的列表在使用反向操作时被赋值为“none”?
- flutter - 如何在脚手架中将自定义偏移设置为“FloatingActionButtonLocation”?
- python - 在添加的列上获取 nan
- plot - 用 Sagemath 绘制微分方程的解
- r - R中单个图上的可变轴
- asp.net-core - .Net 核心 2.1 身份 configureapplicationcookie 会话存储与 addsession/usesessions
- ionic-framework - 离子 4 CSS 变量
- php - PHP 注意:未定义的偏移量:0 使用数据行
- javascript - 更改 React 状态对象中的布尔属性