枚举是JDK1.5版本新增的特性:泛型、Foreach等如今被广泛应用的特性也是由JDK1.5时所新增的,在JDK1.6后switch语句支持枚举类型。
枚举最简单的写法
public enum Colors {
RED, GREEN, BLUE
}
枚举带参数写法
public enum ColorsEnum {
RED("red", "红色"), GREEN("green", "绿色"), BLUE("blue", "蓝色");
private final String key;
private final String color;
ColorsEnum(String key, String color) {
this.key = key;
this.color = color;
}
public String getKey() {
return key;
}
public String getColor() {
return color;
}
// 提供静态方法获取对应的Enum
public static ColorsEnum getEnumKey(String key) {
if (key == null) {
return null;
}
for (ColorsEnum colorsEnum : ColorsEnum.values()) {
if (key.equals(colorsEnum.getKey())) {
return colorsEnum;
}
}
return null;
}
}
Android 中的枚举
文中描述说使用枚举内存会是使用静态常量的2倍以上,根据不同的枚举计算,超过的不止2倍;
1:枚举类型的引用需要内存空间;
2:枚举引用指向的对象需要内存空间;(就这两条就达到了2倍的了)
3:枚举数组需要内存空间;