1

Javaで列挙型をいつ使用できるかを理解しようとしています。

したがって、3つの列挙値があるとしましょう:

enum Activity {
    STUDENT, MECANICIAN, TEACHER
}

既存のクラスでこの列挙型クラスをどのように利用できPersonますか?データベースにどのように保持されますか?

class Person {
    private String name;
    private String age;
    private String activity; // !!!
}

ありがとうございました。

4

3 に答える 3

6

列挙型をに追加するだけPersonです:

class Person {
    private String name;
    private String age;
    private Activity activity; 
}

このフィールドを永続化する1つの方法は、HibernateなどのORMを使用することです。次に例を示します。

    @Enumerated(EnumType.STRING)
    private Activity activity; 

フィールドをデータベースのテキストタイプフィールドにマップします。

于 2012-08-16T16:42:26.453 に答える
0

Enum は反復可能です。これは、次のような値を使用する場合に最適です。

public static String getStatusStr(Status s) {
    return Messages.get("softDeleteable.status." + s.name());
}

public static List<DropDownData> getStatusDataSource() {
    List<DropDownData> retval = new ArrayList<DropDownData>();

    for(Status s : Status.values()) {
        retval.add(new DropDownData(s.name(), getStatusStr(s) ));
    }

    return retval;
}

DropDownData は単純な値、ラベル オブジェクト、Messages は翻訳用 (Play フレームワーク) です。

于 2012-08-16T16:55:49.753 に答える
0

それらは、抽象的な整数を使用しなければならない代わりに役立ちます。job=1 の代わりに job=STUDENT です。確かに数字を使用できますが、コードは理解しにくいものになります。さらに、必要なタイプとしてアクティビティを使用できます。したがって、関数 changeJob(int val) があるときはいつでも、それを changeJob(activity val) にして、エニグマの 1 つを強制的に渡すことができます。

于 2012-08-16T16:45:18.177 に答える