5

私はJavaの列挙型を調べていました。列挙型が実行できるのと同じことは、コレクション、文字列の配列、またはユーザー定義型によって実現できます。Java5に列挙型を導入する主な目的は何ですか。

ありがとう、Sehensaa

4

4 に答える 4

12

利点-

  • 定数宣言のセット
  • メソッドの入力パラメータを制限する
  • スイッチケースで使用可能

これは、定数の固定セットで構成されるフィールドに使用されます。

例はThread.State

public enum State {
    NEW,
    RUNNABLE,
    WAITING,
    BLOCKED,
    ...
}

またprivate enum Alignment { LEFT, RIGHT };

Enumlike-を使用して入力パラメータを制限できます

String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){}

ここで、alignパラメータは、制限されているAlignment.LEFTAlignment.RIGHT、制限されている可能性があります。

enum-を使用したswitch-caseの例

String drawCellValue (int maxCellLnghth, String cellVal, Alignment align){
    switch (align) {
    case LEFT:...
    case RIGHT: ...
    }
    ...
}
于 2012-12-12T12:15:11.917 に答える
3

理解から-enums-in-java

  1. タイプセーフティ。関数の引数、戻り値の型、クラスメンバー、またはローカル変数を特定の列挙型として宣言できます。コンパイラは型の安全性を強制します。
  2. 列挙型は基本的にクラスです。彼らはインターフェースを実装したり、振る舞いをしたりすることができます。

enum-in-java-advantagesから
有効な値のコンパイル時チェックを無料で利用できます。使用する

public static int OPTION_ONE = 0;
public static int OPTION_TWO = 1;
于 2012-12-12T12:15:34.713 に答える
1

switchその用途の1つは、 Java 7以前は許可されていなかったように、文字列型変数をエミュレートする手段としてでした。

于 2012-12-12T12:17:56.317 に答える
1

「タイプセーフな列挙型パターン」を探してください(たとえば、JoshuaBlochによる「EffectiveJava」第1版の本を参照してください)。Javaの「enum」コンストラクトは、このデザインパターンの言語レベルのサポート(シンタックスシュガー)です。

于 2012-12-12T12:29:01.787 に答える