假设我有一个班级:
public enum Enums
{
// about thousand different Enums
}
我有另一个类,其中用户登录,并且根据他是管理员还是普通用户,用户可以访问有限的枚举列表。我知道我可以从类中获取所有枚举的完整列表,但是在枚举类不知道用户信息的情况下,通过某些标准过滤这些枚举的优雅方法是什么?
编辑:以下是它今天的样子:
@GET
@RolesAllowed({ADMIN})
@Path("/test")
public Response reply(@Auth User user)
{
JSONObject jsonObject = new JSONObject();
jsonObject.put("enums", Arrays.toString(Enums.values()));
return Response.ok(jsonObject.toJSONString()).build();
}
我正在返回1000个事件的完整列表,而管理员应该只看到有限的数量。
让我们以周日名称为例。见下文
public enum DaysOfWeekEnum {
SUNDAY("off"),
MONDAY("working"),
TUESDAY("working"),
WEDNESDAY("working"),
THURSDAY("working"),
FRIDAY("working"),
SATURDAY("off");
private String typeOfDay;
DaysOfWeekEnum(String typeOfDay) {
this.typeOfDay = typeOfDay;
}
// standard getters and setters
public static Stream<DaysOfWeekEnum> stream() {
return Stream.Of(DaysOfWeekEnum.values());
}
}
现在我们将编写一个示例来打印非工作日:
public class EnumStreamExample {
public static void main() {
DaysOfWeekEnum.stream()
.filter(d -> d.getTypeOfDay().equals("off"))
.forEach(System.out::println);
}
}
当我们运行这个时,我们得到的输出:
SUNDAY
SATURDAY
对不起,我在打电话,请在回答中格式化代码。
假设您的枚举看起来像
private enum Enums {
A,
B,
C,
D
}
其中 A、B 是特定于管理员的。
创建一个类,允许根据该人是否为管理员访问枚举。
public class SO {
EnumSet<Enums> adminEnums = EnumSet.allOf(Enums.class);
EnumSet<Enums> nonAdminEnums = EnumSet.of(Enums.C, Enums.D);
public Set<Enums> getEnums(User user) {
boolean isAdmin = user.isAdmin(); //An example
return isAdmin ? adminEnums : nonAdminEnums;
}
EnumSet是为存储一组枚举而优化的特殊Set实现。adminEnums
存储所有枚举的列表,而nonAdminEnums
具有有限的枚举集。
您要么必须显式指定admin的受限枚举列表,要么指定打开的枚举并在此基础上派生另一个枚举。这不仅乏味而且容易出错。将来,当您添加新的枚举实例时,您也必须更新它,这很容易忘记。
如果枚举本身包含以下信息会更好,
private enum Enums {
A(false),
B(false),
C(true),
D(true);
private boolean adminSpecific;
Enums(boolean adminSpecific) {
this.adminSpecific = adminSpecific;
}
public boolean isAdminSpecific() {
return adminSpecific;
}
}
在这种情况下,我们可以根据enum实例中包含的信息来导出列表。
Set<Enums> adminEnums = Arrays.stream(Enums.values())
.filter(Enums::isAdminSpecific)
.collect(Collectors.toSet());
如何在枚举的帮助下筛选我的“StorageManager”在其名为“items”的LinkedList中的项目?受此筛选器影响的项目需要复制到新的LinkedList中。我用buyNewItem()将项目添加到存储管理器列表中,但第二项任务需要帮助。 如果我忘记添加一些重要信息,请让我知道。 编辑:仅允许重新导入的是 导入java.util.数组; 导入java.util.LinkedList;
我正试图根据一个标准将x个列的数据归零 例如: 第1页: 一月二月三月四月五月六月七月八月九月十月十一月十二月 第2页: 版本(标准)=2 因此,我想选择前两个月,并在1月份将所有数据归零 更新:到目前为止,我得到了这么多,现在我只能选择 我无法让它选择范围。
我希望在我的社交应用程序中实现朋友搜索功能。为此,我尝试在DB的“用户”集合中查询每个用户的文档,但它应该排除一些特定文档,例如当前用户已经是朋友的用户或请求待定的用户。 是否可以通过在Firestore中传递这些文档引用ID来查询所有用户文档,不包括特定文档。 如果没有,有人能说一种结构化数据的方法,以便我可以实现这个功能吗?谢谢。
问题内容: 我正在标准库(例如apache commons,jax,jboss,javax)中寻找一个列出所有标准mime类型(aka content- type)值的接口或枚举。 该接口不应被其他类所困扰,否则将很难将整个类作为gwt源代码包含在内。 例如 要么, 问题答案: 我们为此提供了一个 番石榴 类:。 如源代码和第823期中所述,它是与Guava 12一起发布的。来源也可用。
我有这个枚举(我使用的是TypeScript): 我想在我的表单中构建一个select,每个选项的值为enum整数值,标签为enum文本,如下所示: 我该怎么做?
这是我的密码: 它返回表中所有列的数组。但我不需要把所有的专栏都写下来。我只需要返回以下列:。我对此进行了搜索并找到了答案:(使用函数) 但它并没有返回预期的结果。它返回以下内容: 如您所见,没有和列。我怎样才能修好它?