文章已收录Github精选,欢迎Star:https://github.com/yehongzhi/learningSummary
什么是枚举
枚举是JDK1.5新增的一种数据类型,是一种特殊的类,常用于表示一组常量,比如一年四季,12个月份,星期一到星期天,服务返回的错误码,结算支付的方式等等。枚举是使用enum关键字来定义。
枚举的使用
在使用枚举之前我们先探讨一个问题,为什么要使用枚举。
现在有个业务场景是结算支付,有支付宝和微信支付两种方式,1表示支付宝,2表示微信支付,还需要根据编码(1或2)获取相应的英文名,如果不用枚举,我们就要这样写。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class PayTypeUtil { private static final int ALI_PAY = 1; private static final int WECHAT_PAY = 2;
public String getPayName(int code) { if (ALI_PAY == code) { return "Ali_Pay"; } if (WECHAT_PAY == code) { return "Wechat_Pay"; } return null; } }
|
如果这时,产品经理说要增加一个银联支付,就要加多if的判断,就会造成有多少种支付方式,就有多少个if,非常难看。
如果使用枚举,就变得很优雅,先看代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public enum PayTypeEnum { ALI_PAY(1, "ALI_PAY"), WECHAT_PAY(2, "WECHAT_PAY");
private int code;
private String describe;
PayTypeEnum(int code, String describe) { this.code = code; this.describe = describe; } public PayTypeEnum find(int code) { for (PayTypeEnum payTypeEnum : values()) |