枚举(Eeum)的缺点

每一个枚举值都是一个对象,在使用它时会增加额外的内存消耗,所以枚举相比与 Integer 和 String 会占用更多的内存。

较多的使用 Enum 会增加 DEX 文件的大小,会造成运行时更多的开销,使我们的应用需要更多的空间。

使用@IntDef代替枚举
public class IntDefClass {IntDefClass(){}private static final int one = 1;private static final int two = 2;//   @IntDef({one,two})  和下边的作用相同@IntDef({1,2})@Retention(RetentionPolicy.CLASS)public @interface status{ }//在类中使用@IntDef定义过的注解public void setData(@status int param){}
}
public class IntDefActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_int_def);initData();}private void initData() {IntDefClass intDefClass = new IntDefClass();intDefClass.setData(2);//作用在这里}
}

在调用setData时,会提示可入传的值,如果不是规定的值,也会提示错误,如下图


注解的生命周期分为:

  • 1、RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;
  • 2、RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;
  • 3、RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;

参考:https://www.cnblogs.com/a8457013/p/9965551.html
https://www.jianshu.com/p/c5267d1f9a52

Java注解:@IntDef 替换 Emum相关推荐

  1. 你真的会用java注解吗?

    "揭开java注解的神秘面纱" 介绍 想必大家在接触java,甚至部分工作几年的,对于类.方法.字段上的 @xxx 都有一种迷茫:这是啥玩意,它是怎么运行起来的? 别慌,这就是ja ...

  2. Java 注解详解 (annotation)

    什么是java注解 注解是java5的新特性.注解可以看做一种注释或者元数据(MetaData),可以把它插入到我们的java代码中,用来描述我们的java类,从而影响java类的行为. Java注解 ...

  3. Java注解原来如此通俗易懂

    目录: 1.注解概述 2.注解的作用分析 3.JDK中预定义的一些注解 4.自定义注解 5.元注解 6.解析注解 1.注解概述 Java注解是一系列元数据,它提供数据用来解释程序代码,它是JDK1.5 ...

  4. java注解管理_JavaSpring【四、Bean管理注解实现】

    前面讲的Bean相关配置全部是使用xml配置文件或实现接口来实现的,接下来将比较常用的用法,使用注解实现bean的注入和管理 内容包括 ClassPath扫描与组件管理 类的自动检测与注册bean c ...

  5. Java注解解析-搭建自己的注解处理器(CLASS注解使用篇)

    该文章是继Java注解解析-基础+运行时注解(RUNTIME)之后,使用注解处理器处理CLASS注解的文章.通过完整的Demo例子介绍整个注解处理器的搭建流程以及注意事项,你将知道如何去搭建自己的注解 ...

  6. java 需要class interface 或enum_阿里P8教你Java注解与反射

    Ⅰ 什么是注解 Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制.Java 语言中的类.方法.变量.参数和包等都可以被标注.和 Javadoc 不同,J ...

  7. java 注解与反射

    java 注解与反射 学习笔记: 1.注解:注释给计算机理解 英文:Annotation 2.注解不是必须的,但是会因为程序的需要 3. 三种java内置类型:Override.Deprecated. ...

  8. Java 注解和反射

    文章目录 注解 java文档注释 自定义注解 解析注解 反射 反射机制介绍 反射入门案例 反射机制原理示意图 反射机制 反射调用优化 Class类 哪些类型有Class对象 如何获取Class类对象 ...

  9. Java注解与反射系列——Class类day1-3

    Java注解与反射系列--Class类 Class类 常用方法 哪些类型有Class对象? 类的加载过程 类的加载 链接 初始化 什么时候会发送类的初始化 类的主动引用 类的被动引用 获取Class实 ...

  10. Java注解---通俗易懂

    本文转载于Java注解-最通俗易懂的注解 Annotation 中文译过来就是注解.标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解. 我个人认为,比较糟糕的技术文 ...

最新文章

  1. 作业11:最优前缀码
  2. Spring Boot(五):spring data jpa的使用
  3. Sun JDK: Hashmap.get非法使用的挂起分析
  4. 正则满足中文的顿号_常用的正则表达式、正则表达式之断言
  5. ZOJ2112(区间动态求第K大)
  6. python27怎么使用_pygtk:glade的使用(针对python27的第一个例子)
  7. 设计模式学习笔记——访问者(Visitor)模式
  8. matlab 赋空值,未对输出参数赋值 求大神帮忙解惑
  9. oracle表空间总结,Oracle操作用户和表空间的总结
  10. read fread open fopen write fwrite
  11. 虚拟化 VS 容器化(docker)
  12. 文本分割器TXTSpliter
  13. 人工智能——支持向量机(SVM)思维导图
  14. 【堆排序的递归和非递归实现】Java实现
  15. 随机数字表法计算机分配,随机数字表法
  16. 性能优化 ---启动优化
  17. 1218. 最长定差子序列【我亦无他唯手熟尔】
  18. STM32F103C8T6和STM32F103C6T6区别
  19. 什么是ISO 21434?给汽车软件开发人员的合规贴士
  20. ubuntu下exiftool安装

热门文章

  1. 神州数码交换机的数据备份
  2. CorelDraw软件快速入门
  3. mysql表删除后恢复
  4. 01.第一章 初等概率论
  5. 如何玩转抖音吸粉引流,老路子新热点照样1000+
  6. 什么短视频更吸引人?考虑到三点,吸粉引流不在话下
  7. 图片去水印的原理_图片去水印方法 图片如何去掉水印
  8. 洛谷入门题 深基2 例5~例8
  9. web前端入门到实战:HTML图像标签img和源属性src及Alt属性、宽高、对齐
  10. 西安大略电子与计算机工程专业,2020年西安大略大学电子与计算机工程(工程科学硕士, 工程硕士)专业硕士申请条件-学费-世界排名...