Javaは初期値の順序が0であると述べているが、私はこのような列挙を作成したときと仮定することができます?Javaの列挙型が1ずつ自動増分すると仮定できますか? 、常に<code>WEDNESDAY</code>の2、<code>TUESDAY</code>の序数は常に1であることを</p> <pre><code>public enum Direction {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, ...} </code></pre> <p>..:
もう少し詳しく説明します。私は列挙型を宣言しています:
ここでは、時計回りに90度回転する方法があります。これは、序数と1行です:
direction = Direction.values()[direction.ordinal()+1 % Direction.values().length];
私はswitch文や条件を使用する必要があります序使用することはありません場合は、次の
switch (direction) {
case LEFT:newdirection = Direction.UP;
break;
etc...
}
をカップルの利点は序数を使用してあります。
- 短いコード
- 高速コード(無視可能)
- 方向あなたはどう思いますか
あなたは正しい場所に新しい方向性を置けば実装は必ずしも変更する必要はありません(たとえばDOWN_LEFT
のために)追加されますか?
(カスタムシリアル化の場合など)問題がある場合は、とにかく明示的なマッピングを行う方がよいでしょう。単に 'EnumMap'を作成するか、 'Direction'に' int'フィールドを与えてください。 –
私はむしろそれをきれいに保つだろう。これは学校向けですが、技術的にはまだ列挙を使用していません。EnumMapは、まだ配列について学んでいないため、多少の極端である可能性があります。 – Fatso
あなたのクリーン概念は少し間違っています:-)。序数に依拠することは、これをコード化する非常に面倒な方法になります。 –