android枚举的替代(官方建议)

Enums often require more than twice as much memory as static constants. You should strictly avoid using enums on Android

Android不建议使用枚举。枚举算是一种特殊的类占用内存多,而且运行时内存也会增加。这个时候使用常量来代替是个好方法。

为了弥补不能用枚举,官方推荐两个注解IntDef和StringDef,用来提供编译期的类型检查。

public class RefreshType {
    @IntDef({EMPTY, PULL, MIXED, NONE})
    @Retention(RetentionPolicy.SOURCE)
    public @interface Refresh {
    }

    public static final int EMPTY = 0;//中间刷新动画
    public static final int PULL = 1;//下拉刷新动画
    public static final int MIXED = 2;//同时转动
    public static final int NONE = 3;//不需要loading动画
}

它是在源码级别的检查,不会影响到编译和运行

然后需要的时候在某个变量的前面添加 @RefreshType.Refresh就行了

你可能感兴趣的:(Android)