java - 如何在 Java 中隐藏枚举值?

标签 java enums

我有一个具有权限的枚举类。

public enum UserRight {
    SYSTEMMANAGEMENT, USERADMINISTRATION, ROLEADMINISTRATION, 
    STRUCTUREADMINISTRATION, DOCUMENTADMINISTRATION;
}

现在我想将除 SYSTEMMANAGEMENT 之外的所有权限加载到列表中。 我现在这样做:

availrightslist.addAll(Arrays.asList(UserRight.values()));

如何在没有 SYSTEMMANAGEMENT 权限的情况下加载所有权限?

最佳答案

您可以在添加完所有内容后将其删除:

availrightslist.remove(UserRight.SYSTEMMANAGEMENT);

或者使用一些EnumSet 魔法:

Set<UserRight> rights = EnumSet.complementOf(EnumSet.of(UserRight.SYSTEMMANAGEMENT));

通常,如果您有 enumCollection,建议使用 EnumSet。因为拥有两次 UserRight 并没有多大意义。

关于java - 如何在 Java 中隐藏枚举值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56061516/

相关文章:

java - 创建类的数组,将数组中的各个值作为参数传递

java - 如何在java中将HashMap<String, ArrayList<MyClass>>转换为ArrayList<MyClass>?

java - 访问maven生成的jar中资源目录中的文件

C++无法同时使用枚举和开关

java - 将集合转换为带有计数的字符串映射

java - Playframework 中的 ConcurrentModificationException

python - 如何检查 Python 枚举中项目的排序?

c - 枚举值解析

java - 在运行时生成新的枚举值

c++ - 定义基于模板的映射指针,以便在验证范围时将 int 解析为 enum