Java 用注解(@IntDef/@StringDef)替代枚举

我项目里面定义网络类型,原本是用枚举这样定义的:

public enum NetType {
    /**
     * 有网络,包括Wifi/gprs
     */
    AUTO,
    /**
     * wifi
     */
    WIFI,
    /**
     * PC/笔记本/PDA
     */
    CMNET,
    /**
     * 手机端
     */
    CMWAP,
    /**
     * 没有网络
     */
    NONE
}
但是由于枚举耗内存。google建议使用@IntDef/@StringDef注解替代枚举

用注解之后,写成如下:

@Retention(RetentionPolicy.SOURCE)
@StringDef({NetType.AUTO, NetType.WIFI, NetType.CMNET, NetType.CMWAP, NetType.NONE})
public @interface NetType {
    /**
     * 有网络,包括Wifi/gprs
     */
    String AUTO = "AUTO";
    /**
     * wifi
     */
    String WIFI = "WIFI";
    /**
     * PC/笔记本/PDA端数据流量网络类型
     */
    String CMNET = "CMNET";
    /**
     * 手机端数据流量网络类型
     */
    String CMWAP = "CMWAP";
    /**
     * 没有网络
     */
    String NONE = "NONE";
}

你可能感兴趣的:(java基础)