java 实体类枚举值转换 0/1/3/4 转为 0 使用重写get set方法实现
时间: 2023-12-12 17:04:56 浏览: 72
好的,针对您的问题,我提供以下代码实现:
```java
public class Entity {
public enum Status {
UNKNOWN(-1),
DISABLED(0),
ENABLED(1),
DELETED(3),
ARCHIVED(4);
private final int value;
Status(int value) {
this.value = value;
}
public int getValue() {
return value;
}
public static Status fromValue(int value) {
for (Status s : Status.values()) {
if (s.getValue() == value) {
return s;
}
}
return UNKNOWN;
}
}
private Status status;
public int getStatus() {
return status.getValue();
}
public void setStatus(int value) {
this.status = Status.fromValue(value);
}
}
```
以上代码中,我们定义了一个实体类 Entity,其中包含一个枚举类型 Status,它包含五个值 UNKNOWN、DISABLED、ENABLED、DELETED、ARCHIVED,分别对应 -1、0、1、3、4 这五个整数值。实体类 Entity 中包含一个名为 status 的属性,它的类型是 Status,我们使用重写的 get 和 set 方法来实现整数值与枚举值之间的转换。
在 getStatus 方法中,我们使用 status.getValue() 来获取当前 status 对象的整数值,这个整数值就是我们需要的 0、1、3、4 中的一个。
在 setStatus 方法中,我们首先使用 Status.fromValue(value) 方法来将整数值 value 转换为 Status 枚举类型的值,然后将这个枚举类型的值赋值给 status 属性。
这样,当我们需要将整数值转换为枚举值时,只需要调用 Status.fromValue(value) 方法即可,当我们需要将枚举值转换为整数值时,只需要调用 status.getValue() 方法即可。
阅读全文