How to hide an Enum Value in Java?

sul*_*x32 3 java enums

I have a Enum class with rights.

public enum UserRight {
    SYSTEMMANAGEMENT, USERADMINISTRATION, ROLEADMINISTRATION, 
    STRUCTUREADMINISTRATION, DOCUMENTADMINISTRATION;
}
Run Code Online (Sandbox Code Playgroud)

Now i want to load all my rights into a list except SYSTEMMANAGEMENT. I do it now like this:

availrightslist.addAll(Arrays.asList(UserRight.values()));
Run Code Online (Sandbox Code Playgroud)

How can I load all rights without the SYSTEMMANAGEMENT right?

Lin*_*ica 14

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

availrightslist.remove(UserRight.SYSTEMMANAGEMENT);
Run Code Online (Sandbox Code Playgroud)

或使用一些EnumSet 魔术

Set<UserRight> rights = EnumSet.complementOf(EnumSet.of(UserRight.SYSTEMMANAGEMENT));
Run Code Online (Sandbox Code Playgroud)

通常,如果您有个Collectionenum建议您使用EnumSet。因为UserRight两次都没有意义。