【发布时间】:2020-02-11 14:02:09
【问题描述】:
这里是 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 对几个“樱桃采摘”角色执行此枚举检查?
【问题讨论】:
-
有什么理由使用
List<Role>(重要的订单,需要支持重复)而不是Set<Role>,后者可能是EnumSet<Role>?
标签: java java-8 enums java-stream