我們知道,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