在java中扩展枚举的替代方法?

时间:2015-04-03 09:08:47

标签: java enums

我的情况是,我的枚举已经变得庞大并且在维护方面失控。我想把责任委托给每个班级。但是,有一些常见的资格符合多个班级的要求。我正在考虑定义一个父枚举,其中定义了必要的常用枚举,然后通过各个类的枚举扩展父枚举以添加类特定的条目。 Java不支持扩展枚举。有谁知道更好的选择?

我感谢所提供的任何建议。谢谢!

2 个答案:

答案 0 :(得分:1)

您应该切换到整数,就像许多JavaSE API一样。

class Constants
{
    public static final int COMMON_CONSTANT_1 = 1;
    public static final int COMMON_CONSTANT_2 = 2;
    ....
    static final int END_OF_COMMON_CONSTANTS = 127;
}

class AClass
{
    public static final int CONSTANT_NEEDED_BY_ACLASS = 
         Constants.END_OF_COMMON_CONSTANTS + 1;
    public static final int ANOTHER_CONSTANT =
         CONSTANT_NEEDED_BY_ACLASS + 1;
    ....
}

这样任何类都可以使用公共常量并使用自定义常量扩展它们,而不会相互干扰。

答案 1 :(得分:0)

如果您的枚举只有一个属性,您可以在file.properties中移动,否则您可以在类中创建内部枚举类以使所有内容更整洁