引言
无论哪种开发语言,枚举的使用都是基础中的基础,不过在实际使用中,比如在 android 开发中,并不推荐直接使用枚举,为什么呢?占用内存多!
Android 如何优雅的使用枚举
- 静态常量
可以实现类似枚举的功能,但不能在传参、赋值时约束范围,和枚举天差地别,不合适!不推荐! - @IntDef、@StringDef
可以实现 int、string 数据类型的枚举功能,推荐使用 - kotlin 密封类
可以实现任意数据类型枚举功能,比枚举类功能强大,推荐使用
@IntDef、@StringDef的用法
- @IntDef @StringDef 枚举池定义
//定义一组数据
@IntDef({TYPE_0 ,TYPE_1 ,TYPE_2})
@Retention(RetentionPolicy.SOURCE)
private @interface ENUM_TYPE{}
public static final int TYPE_0 = 0;
public static final int TYPE_1 = 1;
public static final int TYPE_2 = 2;
//成员注解,赋值时约束范围
public @ENUM_TYPE int type;
//方法注解,传参时约束范围
public void setType(@ENUM_TYPE int type) {
this.type = type;
}
网友评论