【问题标题】:Can I restrict method parameters to only certain Enum members?我可以将方法参数限制为仅某些 Enum 成员吗?
【发布时间】:2012-10-17 21:57:22
【问题描述】:

有没有办法限制一个方法只接受枚举的某些成员。假设您列举了军事和入伍军衔。如果我想要一个只能获得军官级别的功能而另一个只能获得士兵级别的功能,我认为在 Java 中没有办法做到这一点,是吗?

【问题讨论】:

  • 你能发布一些关于你想要做什么的代码吗?在准备中迷路了。对不起。
  • 类似 SecurityEnumSet = any of { A B C } 和 MonkeyEnumSet = { B D E } 其中 { A B C D E } 的类型都是 SpecialEnumType ?
  • 如果你想用类型系统保证它,那么它们需要是不同的类型,是的。

标签: java interface enums enumset


【解决方案1】:

您唯一的选择是使用不同的枚举,因为将枚举作为参数的方法将在编译时采用其任何值。

IDE 有助于打字。

【讨论】:

  • 我害怕那个。 IDE 没有帮助。 Eclipse 3.6 拒绝找到我想要使用的枚举,即使它被静态导入到我正在调用它的类或包含相关方法的类中。我希望因为它们包含在 EnumSets 中我可以使用它,但我想不是。
  • 我确实将各种枚举放在了一个接口中,该接口有一个包含枚举数据的内部类。他们每个人都有一个调用该类的构造函数和一个获取它的getter方法,这是他们都实现的接口的一部分。这是我能做的最好的,但它仍然有很多打字。明智的说法,避免枚举中的静态内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-18
  • 2019-12-19
  • 1970-01-01
相关资源
最近更新 更多