抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

文章已收录Github精选,欢迎Starhttps://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())