Enums 如何将另一个枚举导入我的枚举

Enums 如何将另一个枚举导入我的枚举,enums,Enums,这是我的枚举 公共枚举MyEnum{蓝色,红色} 还有另一个外部枚举名为ExternalEnum,我没有也无法更改其源代码,但我可以使用该类,比如说我知道其中有黄色和白色 我想做的是提取外部枚举中的所有元素,使它们成为我的枚举的一部分,即 公共枚举MyEnum{Blue,Red,ExternalEnum.Yellow,ExternalEnum.White} 有没有一种方法可以很容易地做到这一点,这样每次我得到一个新版本的ExternalEnum时,我就不需要手动检查它的所有元素了?我不想使用ex

这是我的枚举

公共枚举MyEnum{蓝色,红色}

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

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

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

有没有一种方法可以很容易地做到这一点,这样每次我得到一个新版本的ExternalEnum时,我就不需要手动检查它的所有元素了?我不想使用extend(subclass),因为它们属于不同的包


谢谢

您所说的是“动态枚举”


到StackOverflow这里的前一个问题。

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

您可以通过如下方式重新定义枚举常量来完成:

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

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

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

“包”表明它是java,但“扩展”使我困惑。您是否希望动态更新此“枚举”?+1 Daniel-在不知道预期语言的情况下(我们可以猜测,但不能确定),我们可以如何帮助您?欢迎您。另外,由于您是StackOverflow的新手,我想通知您,您可以通过勾选答案旁边的勾号来选择好答案并接受对您帮助最大的答案。在这个网站上,一个向上投票或一个被接受的答案算作“谢谢”。+1表示一个好的参考,但这个是C#特有的,OP没有指定语言。它也没有一个被接受的答案。OP,你的目标是哪种语言?