编写一个枚举的步骤:
一、属性 (可根据需要自定义)
/**
* 枚举编码
*/
private final String code;
/**
* 枚举描述
*/
private final String desc;
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
二、构造方法
MyEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
三、枚举成员
SUCCESS("0000", "成功"),
FAILED("0001", "失败"),
;
四、常用工具类方法
/**
* 根据枚举的编码获得对应的枚举
*
* @param code
* @return
*/
public static MyEnum getEnumByCode(@Nullable String code) {
if (code == null) {
return null;
}
for (MyEnum value : MyEnum.values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}
五、完整代码及测试
package com.peanut.youfupay.enums;
import javax.annotation.Nullable;
/**
* 命名规范:
* 枚举类名带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。
* 说明:枚举其实就是特殊的常量类,且构造方法被默认强制是私有。
* 正例:枚举名字为 MyEnum 的成员名称:SUCCESS / UNKNOWN_REASON。
*
* @author peanut
*/
public enum MyEnum {
// 三、枚举成员
SUCCESS("0000", "成功"),
FAILED("0001", "失败"),
;
// 四、常用工具类
/**
* 根据枚举的编码获得对应的枚举
*
* @param code
* @return
*/
public static MyEnum getEnumByCode(@Nullable String code) {
if (code == null) {
return null;
}
for (MyEnum value : MyEnum.values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}
// 一、属性 (可根据需要自定义)
/**
* 枚举编码
*/
private final String code;
/**
* 枚举描述
*/
private final String desc;
public String getCode() {
return code;
}
public String getDesc() {
return desc;
}
// 二、构造方法
MyEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
/**
* 这里模拟我们调用A公司的业务,A公司返回给我们一个响应码
* 如果单凭一堆响应数字,我们不能直观的看懂 "0000"的含义
* 但是如果是 MyEnum.SUCCESS 我们一眼就看出返回的结果是成功
* 0000 成功
* 0001 失败
* 0002 参数错误
* …… 等等
*/
public static void main(String[] args) {
//A公司返回的响应码
String returnCode = "0000";
MyEnum myEnum = getEnumByCode(returnCode);
if (MyEnum.SUCCESS == myEnum) {
System.out.println("调用A公司返回" + myEnum.getDesc());
}
}
}