1

我试图了解何时可以在 Java 中使用枚举。

所以,假设我有三个枚举值:

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; 
}

持久化该字段的一种方法是使用诸如Hibernate之类的 ORM ,例如:

    @Enumerated(EnumType.STRING)
    private Activity activity; 

将该字段映射到数据库中的文本类型字段。

于 2012-08-16T16:42:26.453 回答
0

它们有助于取代必须使用抽象整数。不是job=1,而是job=STUDENT。当然你可以使用数字,但你的代码将很难理解。另外,您可以将活动用作必要的类型。因此,每当您有一个函数 changeJob(int val) 时,您都可以使其 changeJob(activity val) 强制传递您的一个谜。

于 2012-08-16T16:45:18.177 回答
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 是用来翻译的(播放框架)

于 2012-08-16T16:55:49.753 回答