Java 无法理解实际应用程序中的枚举

Java 无法理解实际应用程序中的枚举,java,enums,Java,Enums,我试图理解什么时候可以在Java中使用枚举 假设我有三个枚举值: enum Activity { STUDENT, MECANICIAN, TEACHER } 如何在现有Person类中使用此枚举类?它是如何在数据库中持久化的 class Person { private String name; private String age; private String activity; // !!! } 谢谢。只需将枚举添加到Person: 保存此字段的一种方

我试图理解什么时候可以在Java中使用枚举

假设我有三个枚举值:

enum Activity {
    STUDENT, MECANICIAN, TEACHER
}
如何在现有Person类中使用此枚举类?它是如何在数据库中持久化的

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

只需将枚举添加到Person:

保存此字段的一种方法是使用ORM,例如:

    @Enumerated(EnumType.STRING)
    private Activity activity; 
将字段映射到数据库中的文本类型字段。

只需将枚举添加到Person:

保存此字段的一种方法是使用ORM,例如:

    @Enumerated(EnumType.STRING)
    private Activity activity; 

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

它们有助于取代必须使用抽象整数的位置。不是job=1,而是job=STUDENT。当然你可以使用数字,但是你的代码很难理解。此外,您还可以将活动用作必要的类型。因此,无论何时,只要有一个函数changeJobint val,就可以使它changeJobactivity val强制传递一个谜

它们有助于代替使用抽象整数。不是job=1,而是job=STUDENT。当然你可以使用数字,但是你的代码很难理解。此外,您还可以将活动用作必要的类型。因此,无论何时,只要有一个函数changeJobint val,就可以使它changeJobactivity val强制传递一个谜

Enum是iterable,如果您想使用如下值,这很好:

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是一个简单的值,label对象和Messages用于转换Play framework,Enum是iterable,如果您想使用如下值,这非常好:

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是一个简单的值,标签对象,消息用于转换播放框架

ok。。。它是如何在数据库(例如mysql)中持久化的?我们可以用其他语言轻松地从数据库中检索这些值吗?您可以持久化每个枚举常量的字符串表示形式。它在数据库中的持久化方式完全取决于您的特定应用程序。有许多不同的方法可以持久化Java对象。。。它是如何在数据库(例如mysql)中持久化的?我们可以用其他语言轻松地从数据库中检索这些值吗?您可以持久化每个枚举常量的字符串表示形式。它在数据库中的持久化方式完全取决于您的特定应用程序。有许多不同的方式可以持久化Java对象。