一、 枚举的用法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;
}
}
可以在枚举类中定义属性,这是在添加实体对象的时候需要根据构造函数的规则进行构造(可以添加多个构造函数),在使用枚举类的实体属性时就可以使用这些属性。
如有不正确的地方欢迎指正
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。