【问题标题】:How to import another Enum into My Enum如何将另一个枚举导入我的枚举
【发布时间】:2010-07-15 01:55:03
【问题描述】:

这是我的枚举

公共枚举 MyEnum {Blue, Red};

还有一个名为 ExternalEnum 的外部枚举,我没有也无法更改它的源代码,但我可以使用该类,假设我知道其中有黄色和白色。

我想要做的是拉取外部枚举中的所有元素,使它们成为我的枚举的一部分,即

公共枚举 MyEnum {Blue, Red, ExternalEnum.Yellow, ExternalEnum.White};

有没有一种方法可以让我轻松地做到这一点,这样每次我得到一个新版本的 ExternalEnum 时,我都不需要手动检查它的所有元素?我不想使用扩展(子类),因为它们属于不同的包。

谢谢!

【问题讨论】:

  • "Package" 表明它是 java,但 "extend" 让我感到困惑。您希望动态更新此“枚举”中的值吗?
  • +1 Daniel - 不知道预期的语言(我们可以猜测,但不确定),我们能提供什么帮助?
  • 不客气。另外,由于您是 StackOverflow 的新手,我想通知您,您可以通过勾选答案旁边的勾号来为好的答案投票并接受对您帮助最大的答案。在本网站上,点赞或接受的答案都算作“感谢”。

标签: enums


【解决方案1】:

您所说的是“动态枚举”。

Here is a link 在 StackOverflow 上回答上一个问题。

【讨论】:

  • +1 是一个很好的参考,但是那个是 C# 特定的,并且 OP 没有指定一种语言。它还没有一个公认的答案。 OP,您的目标是哪种语言?
【解决方案2】:

你可以通过像这样重新定义枚举常量来做到这一点:

public enum ExternalEnum
{
    White, // -> 0
    Black  // -> 1
}

public enum MyEnum
{
    White = ExternalEnum.White, // -> 0
    Black = ExternalEnum.Black, // -> 1
    Red, // -> 2
    Blue // -> 3
}

但是,您必须确保枚举常量的整数值不重叠。最简单的方法是首先声明外部常量。没有像自动导入枚举这样的事情。你不能扩展枚举。

【讨论】:

    【解决方案3】:

    由于您没有指定语言,因此很难为您提供帮助,但我怀疑您想要做的事情在解释语言中可能比编译语言更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-11
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      相关资源
      最近更新 更多