【发布时间】:2014-03-19 11:16:45
【问题描述】:
我有一张表,想使用枚举来保存状态。我创建了一个枚举如下
/**
* Enumeration for Status
*
*
* Current defined values are :
* <ul>
* <li>ACTIVE = 1</li>
* <li>INACTIVE = 2</li>
* </ul>
*/
public enum Status {
/**
* ACTIVE (Ordinal 1).
*/
ACTIVE(1),
/**
* INACTIVE (Ordinal 2).
*/
INACTIVE(2),
private int value;
private Status(int value) {
this.value = value;
}
public static void main (String ars[]){
for (Status str : Status.values()) {
System.out.println("====str==========="+str.name() +"::::::: "+str.ordinal());
}
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
}
如何从 1 中获取序数值。我的输出是这样的
====str===========ACTIVE::::::: 0
====str===========INACTIVE::::::: 1
实际上我已将此枚举映射到我的实体,并且我已按如下方式使用它
@Column(name = "STATUS",nullable=false)
@Enumerated(EnumType.ORDINAL)
private Status status;
如何将 Active 状态保存为 1 ...?
【问题讨论】:
-
enum永远不应该是可变的。 你永远不应该在enum上使用setXXX方法,而enum不应该永远 b> 有非final变量。拥有可变的enum违反了enum提供的许多保证。
标签: java enums enumeration