import com.bee.hrm.entity.staff.JoinInformation;
import org.elasticsearch.search.aggregations.metrics.scripted.ParsedScriptedMetric;
import java.util.Arrays;
/**
* @author haibo
* 入职状态枚举:待入职、已入职、未入职
*/
public enum JoinStatusEnum {
IMMINENT_ENTRY("待入职","imminent_entry"),
ENROLLED("已入职","enrolled"),
UNEMPLOYED("未入职","unemployed"),
UNKNOWN("未知","unknown");
public String desc;
public String code;
JoinStatusEnum(String desc, String code) {
this.desc = desc;
this.code = code;
}
public String getCode(){return code;}
public String getDesc(){return desc;}
//遍历枚举
public static JoinStatusEnum getEnumCode(String desc){
return Arrays.asList(JoinStatusEnum.values()).stream().
filter(joinStatusEnum -> joinStatusEnum.getDesc().equals(desc)).
findFirst().orElse(JoinStatusEnum.UNKNOWN);
}
// public static void main(String[] args) {
// String a="待入职";
// System.out.println(JoinStatusEnum.getEnumCode(a).name());
// }
}
输出结果:
IMMINENT_ENTRY
为了防止代码中有空指针异常
public enum WorkStatusEnum {
IMMINENT_ENTRY(10, "待入职", "imminent_entry"),
ALREADY_ENTRY(20, "在职", "already_entry"),
NO_ENTRY(30, "未入职", "no_entry");
public int code;
public String desc;
public String key;
WorkStatusEnum(int code, String desc, String key){
this.code = code;
this.desc = desc;
this.key = key;
}
public int getCode() {
return code;
}
public String getKey() {
return key;
}
public String getDesc() {
return desc;
}
public static WorkStatusEnum getEnumCode(String desc) {
return Arrays.asList(WorkStatusEnum.values()).stream().
filter(workStatusEnum -> workStatusEnum.getDesc().equals(desc)).
findFirst().orElse(null);
}
public static String getEnumCodeName(String desc) {
WorkStatusEnum statusEnum = getEnumCode(desc);
if (statusEnum == null) {
return null;
}
return statusEnum.name();
}
public static WorkStatusEnum workStatusValueOf(String name) {
return Arrays.asList(WorkStatusEnum.values()).stream().
filter(workStatusEnum -> workStatusEnum.name().equalsIgnoreCase(name)).
findFirst().orElse(null);
}
public static String getDescByName(String name) {
WorkStatusEnum workStatusEnum = workStatusValueOf(name);
if (workStatusEnum == null) {
return null;
}
return workStatusEnum.getDesc();
}
}
参考文章: