我处于这样一种情况,我有一个变得巨大并且在维护上失控的枚举。我想把责任分配给每个班级。但是,有一些常见的符合一类以上的要求。我正在考虑定义一个必要的常用定义的父枚举,然后通过各个类的枚举扩展父枚举以添加类特定的条目。 Java不支持扩展枚举。有谁知道更好的选择?在java中扩展枚举的其他选择吗?
我很欣赏提供的任何建议。谢谢!
我处于这样一种情况,我有一个变得巨大并且在维护上失控的枚举。我想把责任分配给每个班级。但是,有一些常见的符合一类以上的要求。我正在考虑定义一个必要的常用定义的父枚举,然后通过各个类的枚举扩展父枚举以添加类特定的条目。 Java不支持扩展枚举。有谁知道更好的选择?在java中扩展枚举的其他选择吗?
我很欣赏提供的任何建议。谢谢!
如果枚举只有一个属性,你可以围绕在file.properties移动,否则你可能会在一个类中创建内部枚举类拥有一切整洁
你也许应该转换到整数,像很多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;
....
}
这样任何类可以使用公用常数,并将其与自定义的扩展,而不会互相干扰。
http://stackoverflow.com/questions/1414755/can-enums-be-subclassed-to-add-new-elements – 2015-04-03 09:10:09
如果大多数值(正如我从问题中理解的)仅需要一个类,他们为什么在那个枚举中?看起来你应该在你的每个类中定义一堆整型常量,然后像'Constants'类那样具有更多类所需的通用选项。 – lodo 2015-04-03 09:13:33