当前位置: 代码迷 >> 综合 >> Java 用注解(@IntDef/@StringDef)替代枚举
  详细解决方案

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

热度:56   发布时间:2023-10-15 09:08:49.0
我项目里面定义网络类型,原本是用枚举这样定义的: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";
}
  相关解决方案