我试图了解何时可以在 Java 中使用枚举。
所以,假设我有三个枚举值:
enum Activity {
STUDENT, MECANICIAN, TEACHER
}
如何在现有类中使用这个枚举Person
类?它是如何保存在数据库中的?
class Person {
private String name;
private String age;
private String activity; // !!!
}
谢谢你。
只需将枚举添加到Person
:
class Person {
private String name;
private String age;
private Activity activity;
}
持久化该字段的一种方法是使用诸如Hibernate之类的 ORM ,例如:
@Enumerated(EnumType.STRING)
private Activity activity;
将该字段映射到数据库中的文本类型字段。
它们有助于取代必须使用抽象整数。不是job=1,而是job=STUDENT。当然你可以使用数字,但你的代码将很难理解。另外,您可以将活动用作必要的类型。因此,每当您有一个函数 changeJob(int val) 时,您都可以使其 changeJob(activity val) 强制传递您的一个谜。
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 是用来翻译的(播放框架)