安卓性能优化之枚举

/**
 * Created by Administrator on 2019/5/5.
 * 性能优化代替枚举
 * 限制指定输入内容
 * (每个枚举值都是一个单利对象,在使用时会增加额外的内存,较多的枚举会增加dex文件,特别是dex文件多大型项目,枚举的初始化容易导致ANR)
 */

public class MyName {
    public static final int JEK = 1;
    public static final int DAVE = 2;
    public static final int TANM = 3;
    public static final int AAROM = 4;


    //flag设置是否可以多选,value设置可以设置那些值
    @IntDef(flag = true, value = {JEK, DAVE, TANM, AAROM})
    //  @Target(ElementType.TYPE)   //接口、类、枚举、注解
    // @Target(ElementType.FIELD) //字段、枚举的常量
    // @Target(ElementType.METHOD) //方法
    // @Target(ElementType.PARAMETER) //方法参数
    // @Target(ElementType.CONSTRUCTOR)  //构造函数
    // @Target(ElementType.LOCAL_VARIABLE)//局部变量
    // @Target(ElementType.ANNOTATION_TYPE)//注解
    // @Target(ElementType.PACKAGE) ///包
    @Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})

    //注解的存活时间
    // RetentionPolicy.SOURCE 原文件有效,被编译时失效
    // RetentionPolicy.CLASS  在class文件时有效,可能被虚拟机忽略
    // RetentionPolicy.RUNTIME  运行时有效
    @Retention(RetentionPolicy.SOURCE)
    public @interface TYPE {

    }

    //定义个默认值
    private @TYPE int vale = JEK;

    // set  get 方法
    public void setName(@TYPE int type) {
        vale = type;
    }
    
   @TYPE
   public int getName() {
    return vale;
  }

}

猜你喜欢

转载自blog.csdn.net/qq_36237165/article/details/89841492