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

能够在枚举类中定义属性,这是在添加实体对象的时候须要根据构造函数的规则进行构造(能够添加多个构造函数),在使用枚举类的实体属性时就能够使用这些属性。

若有不正确的地方欢迎指正构造函数

相关文章
相关标签/搜索