package com.fsni.res.api.enums;
import com.baomidou.mybatisplus.annotation.IEnum;
public enum JobStatusType implements IEnum<Integer> {
/**
* 0:退休
*/
RETIRE(0, "退休"),
/**
* 1:在职
*/
IN_OFFICE(1, "在任");
private Integer value;
private String desc;
JobStatusType(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public void setValue(Integer value) {
this.value = value;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
@Override
public Integer getValue() {
return value;
}
}
不使用枚举存在的问题:可以给性别传入任意的字符串,导致性别是非法的数据,不安全。
枚举是一种特殊类。枚举是有固定实例个数的类型,我们可以把枚举理解成有固定个数实例的多例模式。
枚举补充
枚举的本质是一个类,所以枚举中还可以有成员变量,成员方法等。
1)枚举的属性上面不能书写任何代码,如果属性下面有代码,需要使用分号结束属性的编写
2)只要我们使用枚举类型,那么属性属于静态的,并且给属性赋值,会创建对象,执行无参构造方法
3)如果想执行有参构造,可以给属性后面添加小括号,并赋值实际参数
4)枚举中的构造函数必须是私有的
什么时候用枚举什么时候用字典:
当该类型和代码毫无关联时候用字典,因为你随便加减属性并不会引起代码的改变
当该类型与代码有关时候使用枚举,枚举值改变时候代码也必须改变