1:可以省去多余的 if else if判断,获取到一个状态值(enumState)后,返回相应的状态码![这个和下面的差不多]
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5baac9d0a14c8f3ee9ed852640411487.png)
public enum PayChannelEnum {
ALIPAY("alipay","支付宝"),
WXPAY("wxpay", "微信"),
UNIONPAY("unionpay", "银联"),
CHINAPAY("chinapay", "通联"),
YSF("ysf", "云闪付"),
WXSIGN("wx_sign", "微信签约"),
ALISIGN("ali_sign", "支付宝"),
WXPAY_SIGN("wxpay_sign", "微信"),
ALIPAY_SIGN("alipay_sign", "支付宝"),
UNIONPAY_THREE("3", "银联"),
ALIPAY_ONE("1", "支付宝"),
WXPAY_FOUR("4", "微信"),
;
private String typeName;
private String name;
private PayChannelEnum(String typeName, String name) {
this.typeName = typeName;
this.name = name ;
}
public String getTypeName() {
return typeName;
}
public String getName() {
return name;
}
public static PayChannelEnum getEnumByTypeName(String typeName) {
PayChannelEnum[] ens = values();
PayChannelEnum[] var2 = ens;
int var3 = ens.length;
for(int var4 = 0; var4 < var3; ++var4) {
PayChannelEnum en = var2[var4];
if (en.typeName.equals(typeName)) {
return en;
}
}
return null;
}
public static PayChannelEnum getEnumByValue(String code) {
PayChannelEnum [] ens = PayChannelEnum .values();
for (OrderClassifyEnum en : ens) {
if (en.getCode().equals(code)) {
return en;
}
}
return null;
}
}
//使用
public static void main(String[] args) {
String enumState = "1";
String payMode = Optional.ofNullable(PayChannelEnum.getEnumByTypeName(enumState))
.map(PayChannelEnum::getName).orElse("此处可以return默认值或 null");
System.out.println(payMode);
}
2:简单枚举之布尔值
public enum BooleanEnum {
Y,
N;
public static void main(String[] args) {
String nameY = BooleanEnum.Y.name();
String nameN = BooleanEnum.N.name();
System.out.println(nameY);
System.out.println(nameN);
}
}
3:获取枚举对应的code或者name
public enum NotifyTypeEnum {
API_SX_POLICY("1", "投保通知"),
API_SX_ENDORSE("3", "退保通知"),
API_SX_RENEW("4", "续保通知");
private String code;
private String name;
public String getCode() {
return this.code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
private NotifyTypeEnum(String code, String name) {
this.code = code;
this.name = name;
}
}
String code = NotifyTypeEnum.API_SX_POLICY.getCode();
4: 题目1的另一种写法
package com.zhongan.core.ibroker.constants;
import java.util.HashMap;
import java.util.Map;
public enum CertificateTypeEnum {
I(1, "I", "身份证", "person"),
H(16, "H", "户口簿", "person"),
M(5, "M", "军人身份证", "person"),
PL(21, "PL", "武装警察身份证", "person"),
P(2, "P", "护照", "person"),
GJ(22, "GJ", "港澳居民来往内地通行证", "person"),
TB(23, "TB", "台湾居民来往内地通行证", "person"),
B(3, "B", "出生证", "person"),
D(4, "D", "驾照", "person"),
GT(10, "GT", "港台同胞证", "person"),
S(11, "S", "士兵证", "person"),
GA(14, "GA", "港澳通行证", "person"),
TW(15, "TW", "台湾通行证", "person"),
X(17, "X", "学生证", "person"),
G(18, "G", "国际海员证", "person"),
J(19, "J", "外国人永久居留证", "person"),
LX(20, "LX", "旅行证", "person"),
C(25, "C", "渠道用户号", "person"),
WC(26, "WC", "微信号", "person"),
TWI(27, "TWI", "台湾身份证", "person"),
BIR(28, "BIR", "澳门居民身份证", "person"),
HKI(29, "HKI", "香港身份证", "person"),
FI(30, "FI", "外国人永久居留身份证", "person"),
T(7, "T", "税务登记证", "company"),
L(8, "L", "营业执照", "company"),
O(9, "O", "组织机构证", "company"),
TY(24, "TY", "统一社会信用代码", "company");
private static Map<Integer, CertificateTypeEnum> valueMap;
private static Map<String, CertificateTypeEnum> codeMap;
private static Map<String, CertificateTypeEnum> nameMap;
private int value;
private String code;
private String name;
private String typeName;
private CertificateTypeEnum(int value, String code, String name, String typeName) {
this.value = value;
this.code = code;
this.name = name;
this.typeName = typeName;
}
public int getValue() {
return value;
}
public String getName() {
return name;
}
public String getCode() {
return code;
}
public String getTypeName() {
return typeName;
}
static {
valueMap = new HashMap<Integer, CertificateTypeEnum>();
codeMap = new HashMap<String, CertificateTypeEnum>();
nameMap = new HashMap<String, CertificateTypeEnum>();
for (CertificateTypeEnum an : CertificateTypeEnum.values()) {
valueMap.put(an.getValue(), an);
codeMap.put(an.getCode(), an);
nameMap.put(an.getName(), an);
}
}
public static CertificateTypeEnum getCertificateTypeByValue(int value) {
return valueMap.get(value);
}
public static CertificateTypeEnum getCertificateTypeByCode(String code) {
return codeMap.get(code);
}
public static CertificateTypeEnum getCertificateTypeByName(String name) {
return nameMap.get(name);
}
}
public static void main(String[] args) {
String str = "2";
int num = Integer.parseInt(str);
String name = StringUtils.isNotBlank(str) ? CertificateTypeEnum.getCertificateTypeByValue(num).getName() : " ";
String strName = "户口簿";
String value = CertificateTypeEnum.getCertificateTypeByName(strName).getValue() + "";
System.out.println(value);
}