How to hide an Enum Value in Java?

sulox32 :

I have a Enum class with rights.

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

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()));

How can I load all rights without the SYSTEMMANAGEMENT right?

Lino :

You can just remove it after you've added all:

availrightslist.remove(UserRight.SYSTEMMANAGEMENT);

Or use some EnumSet magic:

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

Generally if you have a Collection of enums it is recommended to use an EnumSet. Because having a UserRight two times doesn't really make sense.

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=84359&siteId=1