枚举
1、java枚举是从jdk5开始引入的
2、简单枚举类型定义
package com.ly.demo.jdk13; /** * @author liuyang * @create 2020-04-29 23:24 */ public enum ColorEnum { // 枚举类型内还有定义其它方法时,最后一个枚举实例后面要以;结尾 RED, GREEN, YELLOW; public static void main(String[] args) { // 获得枚举实例数组 ColorEnum[] colors = ColorEnum.values(); for (ColorEnum color : colors) { System.out.println("枚举实例名:" + color.name()); System.out.println("枚举实例顺序从0开始:" + color.ordinal()); } } }
3、定有有其它方法的枚举类型,枚举类型可以添加普通方法、静态方法、抽象方法、构造方法
package com.ly.demo.jdk13; /** * @author liuyang * @create 2020-04-29 23:34 */ public enum ErrorCodeEnum { // 格式需要与构造方法保持一致 // A和B调用的有参构造器 // C调用的无参构造器,ERROR_C()可直接简写为ERROR_C ERROR_A("错误A", "A"), ERROR_B("错误B", "B"), ERROR_C(); private String msg; private String code; ErrorCodeEnum() { } //枚举类型的构造器只能声明为private或者不修饰 ErrorCodeEnum(String msg, String code) { this.msg = msg; this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } public static void main(String[] args) { ErrorCodeEnum[] arr = ErrorCodeEnum.values(); for (ErrorCodeEnum item : arr) { System.out.println("msg:" + item.getMsg() + ",code:" + item.getCode()); } } }
4、枚举类实现接口
package demo; /** * @description: demo22 * @author: liuyang * @create: 2021-08-31 9:23 */ public class Demo22 { public static void main(String[] args) { for (int i = 0; i < OrderStatus.values().length; i++) { System.out.println(OrderStatus.values()[i].getValue()); System.out.println(OrderStatus.values()[i].getDesc()); OrderStatus.values()[i].show(); } } } interface Test { void show(); } /** * 枚举类也可以实现接口 * 我们可以选择在枚举类中实现接口的方法, * 也可以在具体的枚举实例中重写接口的方法, * 枚举实例中重写的方法优先级高于枚举类中重写的方法 */ enum OrderStatus implements Test { DOWNLOAD_SUCCESS(100,"下载成功") { @Override public void show() { System.out.println("我是下载成功"); } }, DOWNLOAD_FAIL(200,"下载失败") { @Override public void show() { System.out.println("我是下载失败"); } }, DOWNLOAD_ERROR(300,"下载异常") { @Override public void show() { System.out.println("我是下载异常"); } }; private int value; private String desc; private OrderStatus(int value, String desc) { this.value = value; this.desc = desc; } public int getValue() { return value; } public String getDesc() { return desc; } @Override public void show() { System.out.println("hello"); } }
相识是缘