我们知道,java的枚举类:如何在多个枚举重用代码
- 隐含扩展java.lang.Enum;
- 不能从任何其他枚举类扩展。
我有多个枚举类,象下面这样:
enum ResourceState {
RUNNING, STOPPING,STARTTING;//...
void aMethod() {
// ...
}
}
enum ServiceState {
RUNNING, STOPPING,STARTTING,ERROR;//...
void aMethod() {
// ...
}
}
方法aMethod()
枚举ResourceState
和ServiceState
是完全一样的。
,如果ResourceState
和ServiceState
不枚举,他们应该抽象相同的方法来一个超抽象类,像这样:
abstract class AbstractState{
void aMethod() {
// ...
}
}
但ResourceState无法从AbstractState延伸,你有什么想办法解决?
你是什么意思“一模一样”?没有提及这两个枚举?如果那样的话,你可以将逻辑提取成静态方法。 – 2013-03-20 12:48:59
这就是我现在正在做的,但我正在寻找一个更好的解决方案 – BlackJoker 2013-03-20 12:56:07