gpt4 book ai didi

java - 在 Java 中扩展枚举

转载 作者:IT老高 更新时间:2023-10-28 20:30:40 24 4
gpt4 key购买 nike

我有一个枚举,我们称它为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com