私はJavaの列挙型を調べていました。列挙型が実行できるのと同じことは、コレクション、文字列の配列、またはユーザー定義型によって実現できます。Java5に列挙型を導入する主な目的は何ですか。
ありがとう、Sehensaa
利点-
これは、定数の固定セットで構成されるフィールドに使用されます。
例はThread.State
public enum State {
NEW,
RUNNABLE,
WAITING,
BLOCKED,
...
}
またprivate enum Alignment { LEFT, RIGHT };
Enum
like-を使用して入力パラメータを制限できます
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){}
ここで、alignパラメータは、制限されているAlignment.LEFT
かAlignment.RIGHT
、制限されている可能性があります。
enum
-を使用したswitch-caseの例
String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){
switch (align) {
case LEFT:...
case RIGHT: ...
}
...
}
理解から-enums-in-java
enum-in-java-advantagesから
有効な値のコンパイル時チェックを無料で利用できます。使用する
public static int OPTION_ONE = 0;
public static int OPTION_TWO = 1;
switch
その用途の1つは、 Java 7以前は許可されていなかったように、文字列型変数をエミュレートする手段としてでした。
「タイプセーフな列挙型パターン」を探してください(たとえば、JoshuaBlochによる「EffectiveJava」第1版の本を参照してください)。Javaの「enum」コンストラクトは、このデザインパターンの言語レベルのサポート(シンタックスシュガー)です。