Java枚舉簡介

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;
    }
}

能夠在枚舉類中定義屬性,這是在添加實體對象的時候須要根據構造函數的規則進行構造(能夠添加多個構造函數),在使用枚舉類的實體屬性時就能夠使用這些屬性。

若有不正確的地方歡迎指正構造函數

相關文章
相關標籤/搜索