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; } } 能够在枚举类中定义属性,这是在添加实体对象的时候须要根据构造函数的规则进行构造(能够添加多个构造函数),在使用枚举类的实体属性时就能够使用这些属性。
若有不正确的地方欢迎指正构造函数