Java 如何获取枚举的子集

Java 如何获取枚举的子集,java,Java,大多数情况下,包含所有元素的枚举都显示在用户界面的下拉列表中。我们只需要在用户界面中显示5个字段中的2个。通过某种方式利用枚举可用的相同函数,获取此数据的更简单方法是什么 enum Color {RED, GREEN, BLACK, BLUE, YELLOW}; 我们要求在某个用户界面中只显示{红色,蓝色} EnumSet.of(Color.RED, Color.BLUE) 参见听起来像是一份工作: EnumSet=EnumSet.of(Color.RED,Color.BLUE); 如果枚举

大多数情况下,包含所有元素的枚举都显示在用户界面的下拉列表中。我们只需要在用户界面中显示5个字段中的2个。通过某种方式利用枚举可用的相同函数,获取此数据的更简单方法是什么

enum Color {RED, GREEN, BLACK, BLUE, YELLOW};
我们要求在某个用户界面中只显示{红色,蓝色}

EnumSet.of(Color.RED, Color.BLUE)
参见

听起来像是一份工作:

EnumSet=EnumSet.of(Color.RED,Color.BLUE);

如果枚举包含一些自定义方法(例如,显示
红色
而不是
红色

公共枚举颜色{
红色(“红色”)、绿色(“绿色”)、黑色(“黑色”)、蓝色(“蓝色”)、黄色(“黄色”);
私有最终字符串显示;
专用颜色(字符串显示){
this.display=显示;
}
@凌驾
公共字符串toString(){
返回显示;
}
公共静态枚举集getSubSetOfValues(){
返回EnumSet.of(红色,蓝色);//返回红色和绿色
//返回EnumSet.range(绿色,蓝色);//返回绿色,黑色和蓝色
}
}
Color.values();//所有元素

Color.getSubSetOfValues();//子集

EnumSet<Color> set = EnumSet.of(Color.RED, Color.BLUE);
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
    }
}