引用的枚举类型
public enum State {
ON, OFF
};
public enum State {
ON, OFF
};
遍历
- 使用values
for (State s : State.values()) {
System.out.println(s.name());// s.original()访问值
}
可以使用switch 枚举变量把枚举值作为case条件。
- 使用EnumSet
EnumSet<State> stateSet = EnumSet.allOf(State.class);
for (State s : stateSet) {
System.out.println(s);
}
- 使用EnumMap
EnumMap<State, String> stateMap = new EnumMap<State, String>(State.class);
stateMap.put(State.ON, "is On");
stateMap.put(State.OFF, "is off");
for (State s : State.values()) {
System.out.println(s.name() + ":" + stateMap.get(s));
}
或者使用State.class.getEnumConstants()获取State数组。
- 使用EnumUtils.getEnumList方法
List<State> states = EnumUtils.getEnumList(State.class);
自定义枚举实例方法
public enum State {
ON {
@Override
String getInfo() {
return "ON";
}
},
OFF {
@Override
String getInfo() {
return "OFF";
}
};
abstract String getInfo();
};
可以为枚举实例覆盖toString()方法,如:
OFF {
@Override
public String toString() {
return "关闭";
}
};
也可以在覆盖State的toString方法,在方法内使用switch来自定义每个枚举实例的toString值。
为枚举自定义值
public enum State {
ON(1), OFF(2);
private int value;
private State(int i) {
value = i;
}
public int getValue() {
return value;
}
}
版权声明:本文为feiqiang123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。