Java 基于实现枚举值的类动态显示枚举值

Java 基于实现枚举值的类动态显示枚举值,java,enums,Java,Enums,我正在构建一个JavaFx应用程序。 我想在不同的组合框中动态显示枚举值 例如,在控制器A中,我只想显示枚举值“高”,在控制器B中,我想显示所有枚举值 有人能帮忙吗 谢谢 public enum EnumPrio { High("high"), Medium("medium"), Low("low"); private String prio; EnumPrio(String prio) { this.prio = prio;

我正在构建一个JavaFx应用程序。 我想在不同的组合框中动态显示枚举值

例如,在控制器A中,我只想显示枚举值“高”,在控制器B中,我想显示所有枚举值

有人能帮忙吗

谢谢

public enum EnumPrio {

    High("high"),
    Medium("medium"),
    Low("low");

    private String prio;

    EnumPrio(String prio) {
        this.prio = prio;
    }

}
public enum EnumPrio{
高(“高”),
中等(“中等”),
低(“低”);
私人字符串优先级;
EnumPrio(字符串prio){
this.prio=prio;
}
公共静态列表getEnumPrioListByController(字符串控制器){
Stream enumPrioStream=Stream.of(EnumPrio.values());
返回控制器.equals(“A”)?enumPrioStream
.filter(enumPrio->enumPrio.prio.equals(“高”)).collect(Collectors.toList()):enumPrioStream
.filter(enumPrio->!enumPrio.prio.equals(“高”)).collect(Collectors.toList());
}
公共静态void main(字符串[]args){
System.out.println(“enumPrioListForControllerA=“+EnumPrio.getEnumPrioListByController(“A”));
//enumPrioListForControllerA=[高]
System.out.println(“enumPrioListForControllerB=“+EnumPrio.getEnumPrioListByController(“B”));
//enumPrioListForControllerB=[中等,低]
}
}

控制器的任务是选择要查看的模型部分以及查看方式。您可以向枚举中添加一些方法,以方便地按所需方式格式化数据。特别是在您给出的示例中,显示1和3之间的区别。
public enum EnumPrio {

    High("high"),
    Medium("medium"),
    Low("low");

    private String prio;

    EnumPrio(String prio) {
        this.prio = prio;
    }

    public static List<EnumPrio> getEnumPrioListByController(String controller) {
        Stream<EnumPrio> enumPrioStream=Stream.of(EnumPrio.values());

        return controller.equals("A")?enumPrioStream
                .filter(enumPrio->enumPrio.prio.equals("high")).collect(Collectors.toList()):enumPrioStream
                .filter(enumPrio->!enumPrio.prio.equals("high")).collect(Collectors.toList());
    }
    public static void main(String[] args) {

        System.out.println("enumPrioListForControllerA="+EnumPrio.getEnumPrioListByController("A"));
        // enumPrioListForControllerA=[High]
        System.out.println("enumPrioListForControllerB="+EnumPrio.getEnumPrioListByController("B"));
        // enumPrioListForControllerB=[Medium, Low]
    }
}