这是我的Enum
public enum MyEnum {Blue,Red};
还有另外一个名为ExternalEnum的外部枚举,我没有也无法更改其源代码,但我可以使用该类,说我知道它有黄色和白色。
我想要做的是拉出外部枚举中的所有元素,使它们成为我的枚举的一部分,即
public enum MyEnum {Blue,Red,ExternalEnum.Yellow,ExternalEnum.White};
有没有办法可以轻松完成这项工作,所以每次我获得新版本的ExternalEnum时,我都不需要手动检查其所有元素?我不想使用extend(子类),因为它们属于不同的包。
谢谢!
答案 0 :(得分:2)
你所说的是“动态枚举”。
Here is a link在StackOverflow上的上一个问题。
答案 1 :(得分:2)
你可以通过重新定义这样的枚举常量来实现:
public enum ExternalEnum
{
White, // -> 0
Black // -> 1
}
public enum MyEnum
{
White = ExternalEnum.White, // -> 0
Black = ExternalEnum.Black, // -> 1
Red, // -> 2
Blue // -> 3
}
但是,必须确保枚举常量的整数值不重叠。最简单的方法是首先声明外部常量。没有像自动导入枚举这样的东西。你无法扩展枚举。
答案 2 :(得分:1)
由于您没有指定语言,因此很难帮助您,但我怀疑您在解释语言中所做的事情可能比编译语言更容易。