我们在编程时,为了方便,可以用 1 代表“成功”,2 代表“失败”,但是如果直接把 1 和 2 写到代码中,别人看的时候很可能不知道这两个数字的具体含义,这个时候可以利用枚举类,将数字的意思明确地摆出来,以下是应用实例:
Status.java
package enumTests; public enum Status { SUCCESS(1, "成功"), FAILED(2, "失败"); private int value; private String desc; private Status(int value, String desc) { this.value = value; this.desc = desc; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } /** * 根据value值返回对应的status * 如果不存在对应的status,则返回默认Status * @param value 值 * @return status */ public static Status getStatusByValue(int value){ Status defaultStatus = Status.FAILED; for(Status status : Status.values()){ if(status.getValue() == value){ return status; } } return defaultStatus; } /** * 根据value值返回对应的status的描述信息 * 如果不存在对应的status,则返回默认Status的描述信息 * @param value * @return desc描述 */ public static String getDescByValue(int value){ return getStatusByValue(value).getDesc(); } }
StatusTest.java
package enumTests; public class StatusTest { public static void main(String[] args) { System.out.println(Status.FAILED); System.out.println(Status.FAILED.getDesc()); System.out.println(Status.FAILED.getValue()); System.out.println(Status.SUCCESS); System.out.println(Status.SUCCESS.getDesc()); System.out.println(Status.SUCCESS.getValue()); System.out.println(Status.getDescByValue(1)); System.out.println(Status.getDescByValue(0)); System.out.println(Status.getStatusByValue(0)); System.out.println(Status.getStatusByValue(1)); System.out.println(Status.getStatusByValue(2)); } }
本篇非原创,主要代码部分转自微信公众号“Java后端技术”