【问题标题】:Java, generate selected list of enum valuesJava,生成选定的枚举值列表
【发布时间】:2017-11-07 09:15:30
【问题描述】:

我有一个项目,我在其中使用包含 128 个值的枚举类,我希望允许最终用户只选择少数几个值供他使用(比如 128 个中的 20 个)为此,我使用 checkbotablecell 创建了 javafx tableview,它可以工作很好,但是我需要在枚举中创建布尔字段来定义每个值的可见性,但是所有枚举字段都是最终的,我将无法动态更改它。那么,问题是如何动态定义每个枚举值的可见性?

【问题讨论】:

  • 把你想要“可见”的值放在一个 EnumSet 中。

标签: java enums


【解决方案1】:

您可以在 Enum 类中创建 Enum 到 Boolean 的 Map。

例如:static final EnumMap<EnumType , Boolean> visibilityMap.

并添加 getter 和 setter 方法来访问可见性。

【讨论】:

  • EnumMap 准确地说。现在需要用它填充 tableview。
【解决方案2】:

您希望存储 EnumSet

你的枚举类定义了128个单例对象,不能有多个对象"being"同一个枚举对象。解决方案是有一个类包含枚举对象。或者有几个枚举常量的 EnumSet。

EnumSet 是一个针对枚举进行了优化的 Set 实现,并提供了构建方法。 在构造函数中传递实际的枚举类本身,因此通过类型擦除该类仍然可以运行。

EnumSet<Weekday> weekend = EnumSet.of(Weekday.SATURDAY, Weekday.SUNDAY);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    相关资源
    最近更新 更多