Java 如何获取枚举的子集
大多数情况下,包含所有元素的枚举都显示在用户界面的下拉列表中。我们只需要在用户界面中显示5个字段中的2个。通过某种方式利用枚举可用的相同函数,获取此数据的更简单方法是什么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); 如果枚举
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
}
}