我用在具有枚举类型,非常适合我使用库工作,但名称是恐怖和混乱。我可以简单地继承这个枚举来创建一个更好的名字吗?
public enum Settings extends JiggidyWapperfragNautchFrick.SkiddidyBoomCaFriglets {
}
像这样? IntelliJ抱怨,当我试图做到这一点,但什么是适当的方式来得到我提议的效果?
我用在具有枚举类型,非常适合我使用库工作,但名称是恐怖和混乱。我可以简单地继承这个枚举来创建一个更好的名字吗?
public enum Settings extends JiggidyWapperfragNautchFrick.SkiddidyBoomCaFriglets {
}
像这样? IntelliJ抱怨,当我试图做到这一点,但什么是适当的方式来得到我提议的效果?
枚举是最终的类,所以你不能分类他们。我建议把它包装在另一个很好命名的类中。
也许是这样的。通过拥有私有ctor你不能实例化它。
public class Nice {
private Nice(){}
public static badNamedEnum one(){
return badNamedEnum.badNamedOne;
}
public static badNamedEnum two(){
return badNamedEnum.badNamedTwo;
}
}
不,您不能扩展enum
类。
唯一的(轻微的)例外是枚举值可以具有特定于值的类体,它有效地创建了一个单独的类,用于扩展原始类enum
类。
约阿希姆是正确的,但一个枚举可以implement
一个接口。
枚举用于“硬编码”开关和其他测试。允许子类化是没有意义的,并且会打破目的,因为这可能导致对可能值的不确定性。
他最想要的不是一个子类,而是同一类型的另一个名称。在Java AFAIK中,唯一真正的获取方法是子类化,而这种方法(确实很明显)不适用于最终类。不幸的是,Java没有像C中的typedef这样的东西,或者Haskell等人的类型同义词 –
我喜欢“Skiddidy Boom”......但看起来像德语和英语交错,至少... –
类似于http://stackoverflow.com/questions/1414755/java-extend-enum 但我正在寻找解决问题的办法。 – Kieveli
@dystroy:当我输入它时,我的手指喜欢CaFriglets。 – Kieveli