枚举

2019-03-03  本文已影响0人  老柯南

枚举是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 中的枚举

google官方建议

文中描述说使用枚举内存会是使用静态常量的2倍以上,根据不同的枚举计算,超过的不止2倍;
1:枚举类型的引用需要内存空间;
2:枚举引用指向的对象需要内存空间;(就这两条就达到了2倍的了)
3:枚举数组需要内存空间;

Android 中的 Enum 到底占多少内存?该如何用?
Dalvik中的Android对象大小

上一篇 下一篇

猜你喜欢

热点阅读