Ответ 1
Звучит как работа для EnumSet
:
EnumSet<Color> set = EnumSet.of(Color.RED, Color.BLUE);
В большинстве случаев перечисление, содержащее все элементы, показано в раскрывающемся списке в пользовательском интерфейсе. Нам нужно показать только 2 из 5 полей в пользовательском интерфейсе. Какой бы простой способ получить эти данные, используя некоторые функции, доступные для перечисления.
enum Color {RED, GREEN, BLACK, BLUE, YELLOW};
У нас есть требование показывать только {RED, BLUE} в определенном пользовательском интерфейсе?
Звучит как работа для EnumSet
:
EnumSet<Color> set = EnumSet.of(Color.RED, Color.BLUE);
EnumSet.of(Color.RED, Color.BLUE)
Если перечисление содержит некоторые пользовательские методы (например, для отображения Red
instesd Red
)
public enum Color {
RED("Red"), GREEN("Green"), BLACK("Black"), BLUE("Blue"), YELLOW("Yellow");
private final String display;
private Color(String display) {
this.display = display;
}
@Override
public String toString() {
return display;
}
public static EnumSet<Color> getSubSetOfValues() {
return EnumSet.of(RED, BLUE); // return Red and Green
//return EnumSet.range(GREEN, BLUE); // return Green, Black and Blue
}
}
Color.values ();//все элементы.
Color.getSubSetOfValues ();//подмножество