import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
public enum ToolStatusCodeExt {
// 常量数据
SUCCESS (1000, "处理成功", "通用"),
ERROR (1001, "处理失败", "通用"),
LOGIN_ERROR (1002, "登录失败", "登录操作"),
REG_SUCCESS (1003, "注册成功", "注册操作"),
REG_ERROR (1004, "注册失败", "注册操作");
// 常量数据对应的参数信息
// 编码
private final int code;
// 提示信息
private final String msg;
// 操作类型
private final String type;
// 带参的构造函数,参数类型要与常量数据中的数据类型顺序一致
ToolStatusCodeExt(int code, String msg, String type) {
this.code = code;
this.msg = msg;
this.type = type;
}
/**
* <h5>功能:将当前常量数据转化为JSON信息</h5>
*
* @return
*/
public String toJson() {
JSONObject jsonObject = new JSONObject();
jsonObject.put("code", this.code);
jsonObject.put("msg", this.msg);
jsonObject.put("type", this.type);
return jsonObject.toJSONString();
}
/**
* 根据code获取msg
*/
public static String getValue(int code) {
for (ToolStatusCodeExt toolStatusCodeExt : values()) {
if (code == toolStatusCodeExt.code) {
return toolStatusCodeExt.msg;
}
}
return "";
}
/**
* <h5>功能:获取当前枚举类常量信息</h5>
*
*/
private static List<String> getArgs() {
List<String> list = new ArrayList<>();
for (ToolStatusCodeExt toolStatusCodeExt : values()) {
list.add(toolStatusCodeExt.name());
}
return list;
}
public int getCode() {
return code;
}
public String getMsg() {
return msg;
}
public String getType() {
return type;
}
public static void main(String[] args) throws Exception {
System.out.println("--------将当前常量数据转化为JSON信息--------");
System.out.println(ToolStatusCodeExt.SUCCESS.toJson());
System.out.println();
System.out.println("--------获取指定常量数据信息--------");
System.out.println(ToolStatusCodeExt.REG_SUCCESS.getCode());
System.out.println(ToolStatusCodeExt.REG_SUCCESS.getMsg());
System.out.println(ToolStatusCodeExt.REG_SUCCESS.getType());
System.out.println();
System.out.println("---------直接指定常量名称对应的数据信息-------");
System.out.println(ToolStatusCodeExt.valueOf("ERROR").getCode());
System.out.println(ToolStatusCodeExt.valueOf("ERROR").getMsg());
System.out.println(ToolStatusCodeExt.valueOf("ERROR").getType());
System.out.println(ToolStatusCodeExt.valueOf("ERROR").ordinal());
System.out.println();
System.out.println("---------获取当前枚举类常量信息-------");
List<String> constantList = getArgs();
for (String constantName : constantList) {
System.out.println(constantName);
}
System.out.println();
System.out.println("---------根据常量数据的code获取对应的msg信息-------");
System.out.println(getValue(1003));
}
}