2012-05-29 229 views
-1

是否有可能讓一個枚舉常量擴展另一個枚舉(來自同一個枚舉)?擴展和枚舉常量

僞代碼:

private enum Mode{ 
    FRIGHTENED, BLINKING extends FRIGHTENED, SCATTER 
} 

通過這種方式,可以使用枚舉常數在switch - 塊是這樣的:

switch (some_mode){ 
    case FRIGHTENED: 
    // This would trigger when the actual "some_mode" is set 
    // to FRIGHTENED or BLINKING 
    break; 
    case BLINKING: 
    // This would only trigger if the actual "some_mode" is set to BLINKING 
} 

是否有這將讓我的任何模式要做到這一點,還是我完全不在意?


我可能會是一個更加清楚一點關於在switch語句來示出的用例:我打算不檢查所有可能的值,但只適用於「父」之一。

if (some_mode == Mode.FRIGHTENED){ 
    // The behavior in FRIGHTENED and BLINKING mode is the same. The only 
    // difference is the way they are visualized. 
} 

回答

0

有來模擬這個折磨的方式,但沒有,這是不可能的一個枚舉常量來擴展另一個。

1

在Java中,枚舉不能擴展,因此,如果您要逐強相關的枚舉,你可以使用嵌套枚舉結構。請查看this thread

0

不,沒有辦法做到這一點。最近的另一種方法是

switch (some_mode){ 
    case BLINKING: 
    // This would only trigger if the actual "some_mode" is set to BLINKING 
    // no break statement! 
    case FRIGHTENED: 
    // This would trigger when the actual "some_mode" is set 
    // to FRIGHTENED or BLINKING 
}