一個博客: 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 */ } }
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....."); } }
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())
9枚舉類EnumSet

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