1、 枚舉的用法1後端
定義一個枚舉類,並在枚舉類中列出須要使用的字段。 public enum State { START, DOING, DONE } 在須要使用這個枚舉屬性時,直接使用State.START便可。但有時候有點特殊的要求,好比在先後端協同時枚舉要求轉化成int,在傳輸時減小字節。這時候能夠使用枚舉類自帶的一些API,這樣作的好處能夠使用枚舉替代代碼中一些常量數字。 int enumIndex = 0; State state = State.values()[enumIndex]; String enumString = "DOING"; State state1 = State.valueOf(enumString); State state2 = State.DONE; System.out.println(state2.toString()); System.out.println(state2.ordinal());
首先要說明的是若是採用上述方式使用枚舉類,那枚舉類中的每一個實體對象(用詞可能不許確)都有一個index,該index與其在枚舉類中定義的位置有關,如上面的START的對應0.函數
values()方法會返回這個枚舉類中全部定義的實體對象,而後咱們能夠根據實體對象對應的index取到這個實體對象並使用。this
此外,還能夠用valueOf()方法取到某個實體對象,當傳入的String與定義的實體對象一致時,便可取到這個實體對象並加以使用code
最後,枚舉類中定義的實體對象,能夠使用ordinal()獲取到其對應的index,用toString()獲取到它String格式數據。對象
2、枚舉的用法2get
public enum Level { LOW(1, "low"), HIGH(2, "high"); private int id; private String name; Level(int id, String name) { this.id = id; this.name = name; } public int getId() { return id; } public String getName() { return name; } } 能夠在枚舉類中定義屬性,這是在添加實體對象的時候須要根據構造函數的規則進行構造(能夠添加多個構造函數),在使用枚舉類的實體屬性時就能夠使用這些屬性。
若有不正確的地方歡迎指正構造函數