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