我项目里面定义网络类型,原本是用枚举这样定义的: 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"; }