2015-04-03 63 views
2

我处于这样一种情况,我有一个变得巨大并且在维护上失控的枚举。我想把责任分配给每个班级。但是,有一些常见的符合一类以上的要求。我正在考虑定义一个必要的常用定义的父枚举,然后通过各个类的枚举扩展父枚举以添加类特定的条目。 Java不支持扩展枚举。有谁知道更好的选择?在java中扩展枚举的其他选择吗?

我很欣赏提供的任何建议。谢谢!

+0

http://stackoverflow.com/questions/1414755/can-enums-be-subclassed-to-add-new-elements – 2015-04-03 09:10:09

+0

如果大多数值(正如我从问题中理解的)仅需要一个类,他们为什么在那个枚举中?看起来你应该在你的每个类中定义一堆整型常量,然后像'Constants'类那样具有更多类所需的通用选项。 – lodo 2015-04-03 09:13:33

回答

0

如果枚举只有一个属性,你可以围绕在file.properties移动,否则你可能会在一个类中创建内部枚举类拥有一切整洁

1

你也许应该转换到整数,像很多JavaSE APIs。

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; 
    .... 
} 

这样任何类可以使用公用常数,并将其与自定义的扩展,而不会互相干扰。