可能重复:
Java 枚举继承
我正在使用一个具有枚举类型的库,该类型非常适合我的使用,但是这个名字很可怕而且令人困惑。我可以简单地从这个枚举继承来创建我自己的一个更好的名字吗?
public enum Settings extends JiggidyWapperfragNautchFrick.SkiddidyBoomCaFriglets {
}
像这样?当我尝试这样做时,IntelliJ 抱怨,但什么是获得我提议的效果的合适方法?
不,你不能扩展一个enum
类。
唯一的(轻微的)例外是枚举值可以具有特定于值的类主体,这有效地创建了一个扩展原始类的单独enum
类。
枚举是最终类,因此您不能对它们进行子类化。我建议将它包装在另一个名字很好的类中。
也许是这样的。通过拥有私有 ctor,您无法实例化它。
public class Nice {
private Nice(){}
public static badNamedEnum one(){
return badNamedEnum.badNamedOne;
}
public static badNamedEnum two(){
return badNamedEnum.badNamedTwo;
}
}
Joachim 是对的,但枚举可以implement
是接口。
枚举用于“硬编码”开关和其他测试。允许子类化是没有意义的,并且会破坏目的,因为这将允许对可能的值产生不确定性。