一、 枚举的用法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取到这个实体对象并使用。

  • 此外,还可以用valueOf()方法取到某个实体对象,当传入的String与定义的实体对象一致时,即可取到这个实体对象并加以使用

  • 最后,枚举类中定义的实体对象,可以使用ordinal()获取到其对应的index,用toString()获取到它String格式数据。

二、枚举的用法2

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

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


如有不正确的地方欢迎指正


imccl
186 声望8 粉丝