1

可能重复:
Java 枚举继承

我正在使用一个具有枚举类型的库,该类型非常适合我的使用,但是这个名字很可怕而且令人困惑。我可以简单地从这个枚举继承来创建我自己的一个更好的名字吗?

public enum Settings extends JiggidyWapperfragNautchFrick.SkiddidyBoomCaFriglets {
}

像这样?当我尝试这样做时,IntelliJ 抱怨,但什么是获得我提议的效果的合适方法?

4

4 回答 4

4

不,你不能扩展一个enum类。

唯一的(轻微的)例外是枚举值可以具有特定于值的类主体,这有效地创建了一个扩展原始类的单独enum类。

于 2012-09-14T12:16:17.950 回答
3

枚举是最终类,因此您不能对它们进行子类化。我建议将它包装在另一个名字很好的类中。

也许是这样的。通过拥有私有 ctor,您无法实例化它。

public class Nice {

    private Nice(){}

    public static badNamedEnum one(){
        return badNamedEnum.badNamedOne;
    }

    public static badNamedEnum two(){
        return badNamedEnum.badNamedTwo;
    }
}
于 2012-09-14T12:16:59.993 回答
0

Joachim 是对的,但枚举可以implement是接口。

于 2012-09-14T12:18:03.527 回答
0

枚举用于“硬编码”开关和其他测试。允许子类化是没有意义的,并且会破坏目的,因为这将允许对可能的值产生不确定性。

于 2012-09-14T12:20:01.503 回答