作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有一个枚举,我们称它为 A:
public enum A
{
A,
B
}
我有一个接受枚举 A 的函数:
public void functionA(A enumA)
{
//do something
}
如何创建另一个枚举,可能调用 B,我可以传递给 functionA?像这样?
public enum B
{
C
}
functionA(B.C);
我知道您不能扩展枚举,但我还有哪些其他可用选项?实现这一目标的最佳方法是什么?
最佳答案
你不能。
枚举类型是最终设计的。
原因是每个枚举类型应该只有在枚举中声明的元素(例如,我们可以在 switch 语句中使用它们),如果你允许扩展,这是不可能的类型。
你可以这样做:
public interface MyInterface {
// add all methods needed here
}
public enum A implements MyInterface {
A, B;
// implement the methods of MyInterface
}
public enum B implements MyInterface {
C;
// implement the methods of MyInterface
}
请注意,此时无法使用此接口(interface)进行 switch
。 (或者通常有一个 switch
对象可能来自多个 enum
)。
关于java - 在 Java 中扩展枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6511453/
我是一名优秀的程序员,十分优秀!