CodeZLei

  博客园 :: 首页 :: 博问 :: 闪存 :: :: 联系 :: 订阅 订阅 :: 管理 ::

一个博客: https://blog.csdn.net/javazejian/article/details/71333103

阿里开发规范:

  【参考】枚举类名建议带上 Enum 后缀,枚举成员名称需要全大写,单词间用下划线隔开。

说明: 枚举其实就是特殊的类, 域成员均为常量, 且构造方法被默认强制是私有。
正例: 枚举名字为 ProcessStatusEnum 的成员名称: SUCCESS / UNKNOWN_REASON。

  【强制】所有的枚举类型字段必须要有注释,说明每个数据项的用途。

 

1.枚举类的基本使用方式自己去找博客看看不在赘述

2.枚举类自己有一个ordinal 方法 返回int 是根据枚举成员的声明顺序来的,枚举类自带的有一个compareTo方法比较的是ordinal的值,看源码可知.

3.枚举对象的==和eques方式是一个作用看源码可知

4.每一个枚举类都会隐式的继承java.lang.Enum这个类,java中又是没有多继承的,所以枚举类不能继承,可以实现接口可以通过任意枚举反射获取父类得知

5.enum类中定义抽象方法

public enum EnumDemo3 {

    FIRST{
        @Override
        public String getInfo() {
            return "FIRST TIME";
        }
    },
    SECOND{
        @Override
        public String getInfo() {
            return "SECOND TIME";
        }
    }

    ;

    /**
     * 定义抽象方法
     * @return
     */
    public abstract String getInfo();

    //测试
    public static void main(String[] args){
        System.out.println("F:"+EnumDemo3.FIRST.getInfo());
        System.out.println("S:"+EnumDemo3.SECOND.getInfo());
        /**
         输出结果:
         F:FIRST TIME
         S:SECOND TIME
         */
    }
}
View Code

6.enum类与接口

public enum EnumDemo2 implements food ,sport{
    FOOD,
    SPORT,
    ; //分号分隔

    @Override
    public void eat() {
        System.out.println("eat.....");
    }

    @Override
    public void run() {
        System.out.println("run.....");
    }
}
View Code

7.使用switch不用再case中写引用,直接 case BLUE:....

8.枚举类EnumMap 底层使用数组效率高

EnumMap<ColorEnum, String> enumMap = new EnumMap<ColorEnum, String>(ColorEnum.class);
enumMap.put(ColorEnum.RED, ColorEnum.RED.getName());
enumMap.put(ColorEnum.GREEN, ColorEnum.GREEN.getName());
enumMap.put(ColorEnum.BLANK, ColorEnum.BLANK.getName());
enumMap.put(ColorEnum.YELLO, ColorEnum.YELLO.getName())
View Code

9枚举类EnumSet

EnumSet<ColorEnum> colorEnumSet = EnumSet.allOf(ColorEnum.class);
for (ColorEnum colorEnum : colorEnumSet) {
    System.out.println(colorEnum.getName());
}
View Code

 

posted on 2018-06-13 13:54  CodeZLei  阅读(1885)  评论(0编辑  收藏  举报