-1

ある列挙型定数で別の列挙型定数を(同じ列挙型から)拡張することは可能ですか?

擬似コード:

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

switchこのように、次のように-blockでenum-constantsを使用できます。

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

3 に答える 3

1

Javaでは、列挙型を拡張できないため、関連性の高い列挙型を照合する場合は、ネストされた列挙型構造を使用できます。このスレッドをご覧ください。

于 2012-05-29T13:21:16.723 に答える
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
}
于 2012-05-29T13:21:24.290 に答える
0

これをシミュレートするための拷問された方法がありますが、いいえ、ある列挙定数が別の列挙定数を拡張することはできません。

于 2012-05-29T13:22:28.750 に答える