我如何解决枚举继承重命名它?

时间:2012-09-14 12:13:41

标签: java enums rename

  

可能重复:
  Java enum inheritance

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

public enum Settings extends JiggidyWapperfragNautchFrick.SkiddidyBoomCaFriglets {
}
像这样?当我尝试这样做时,IntelliJ抱怨,但是什么是获得我提议的效果的适当方法?

4 个答案:

答案 0 :(得分:4)

不,你不能扩展enum类。

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

答案 1 :(得分:3)

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

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

public class Nice {

    private Nice(){}

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

    public static badNamedEnum two(){
        return badNamedEnum.badNamedTwo;
    }
}

答案 2 :(得分:0)

Joachim是对的,但是enum可以implement一个界面。

答案 3 :(得分:0)

枚举用于“硬编码”交换机和其他测试。允许子类化没有任何意义,并且会破坏目的,因为这将允许对可能的值进行不确定性。