Android @IntDef注解取代Java enum枚举提高性能

为提高Android性能,Android官方建议使用@IntDef注解替代Java的enum枚举。@IntDef的使用给出一个例子,先建立@IntDef数据结构模型,例如MyDay.java:

package zhangphil.test;

import android.support.annotation.IntDef;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

public class MyDay {

public static final int SUNDAY = 0;

public static final int MONDAY = 1;

public static final int TUESDAY = 2;

public static final int WEDNESDAY = 3;

public static final int THURSDAY = 4;

public static final int FRIDAY = 5;

public static final int SATURDAY = 6;

@IntDef({SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY})

@Retention(RetentionPolicy.SOURCE)

public @interface WeekDays {

}

@WeekDays

private int mCurDay = SUNDAY;

public void setCurrentDay(@WeekDays int currentDay) {

this.mCurDay = currentDay;

}

@WeekDays

public int getCurrentDay() {

return mCurDay;

}

}

使用:

MyDay days = new MyDay();

days.setCurrentDay(MyDay.TUESDAY);

@MyDay.WeekDays int day = days.getCurrentDay();

switch (day) {

case MyDay.SUNDAY:

break;

case MyDay.MONDAY:

break;

case MyDay.TUESDAY:

break;

case MyDay.WEDNESDAY:

break;

case MyDay.THURSDAY:

break;

case MyDay.FRIDAY:

break;

case MyDay.SATURDAY:

break;

default:

break;

}

android enum java包_Android @IntDef注解取代Java enum枚举提高性能详解相关推荐

  1. android 调出键盘表情_Android高仿微信表情输入与键盘输入详解

    使用到表情与键盘的切换输入,需要多表情的只需要实现自己的表情fragment界面,然后根据工厂类获取即可,上图看效果: 效果还不错吧,哈哈.下面开始介绍: 本篇主要分析的核心类EmotionKeybo ...

  2. Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

    Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...

  3. 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解

    [JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...

  4. java中北大学ppt总结+课后习题第二章(小宇特详解)

    java中北大学ppt总结+课后习题第二章(小宇特详解) 基本数据类型 Java语言有8种基本数据类型. 逻辑类型:boolean.1字节 整数类型: 1字节整数类型:byte. 2字节整数类型:sh ...

  5. java 枚举 方法_Java枚举使用方法详解

    在实际编程中,往往存在着这样的"数据集",它们的数值在程序中是稳定的,而且"数据集"中的元素是有限的. 例如星期一到星期日七个数据元素组成了一周的"数 ...

  6. Android基础入门教程——8.3.5 Paint API之—— Xfermode与PorterDuff详解(二)

    Android基础入门教程--8.3.5 Paint API之-- Xfermode与PorterDuff详解(二) 标签(空格分隔): Android基础入门教程 本节引言: 上一节,我们学习了Xf ...

  7. java获取request body_HttpServletRequest获取body内容(字符串/二进制)详解

    首页 > Java Web > SpringMvc应用 > HttpServletRequest HttpServletRequest获取body内容(字符串/二进制)详解 获取HT ...

  8. java中String s=abc及String s=new String(abc)详解

    java中String s="abc"及String s=new String("abc")详解 1.   栈(stack)与堆(heap)都是Java用来在R ...

  9. java一个方法排他调用_Java编程实现排他锁代码详解

    一 .前言 某年某月某天,同事说需要一个文件排他锁功能,需求如下: (1)写操作是排他属性 (2)适用于同一进程的多线程/也适用于多进程的排他操作 (3)容错性:获得锁的进程若Crash,不影响到后续 ...

最新文章

  1. 员工信息管理系统java6_职工信息管理系统java源代码【可修改】.doc
  2. php pkcs 1格式的公钥,解说--2--微信支付RSA公钥PKCS1格式转化成PKCS8格式的公钥
  3. Nginx启动提示找不到libpcre.so.1解决方法
  4. C++知识点6——数组与指针初步
  5. DockerFile和DockerCompose使用总结
  6. (转)Oracle 临时表用法
  7. 工业4.0时代,工业交换机在智能电网建设中有什么作用?
  8. TextField对象相关的属性和方法总结
  9. java log输出到文件路径_Java - 配置log4j的日志文件路径 (附-获取当前类路径的多种方法)...
  10. python基础课程2(看代码看注释)--条件判断|循环|函数|生成器|类
  11. 什么是事件冒泡?如何阻止事件冒泡?
  12. MFC工作笔记0010---PeekMessage 详解
  13. verilog学习记(测试和验证)
  14. java 方法的重载_Java中的方法和方法重载
  15. python经纬度转换xy坐标公式_python 经纬度和平面坐标相互转换利用米勒坐标系
  16. QT ActiveX和读取EXCEL
  17. php怎么让页面下雪花,html5实现下雪效果的方法
  18. C++async、future、packaged_task、promise的使用
  19. Macbook双系统 10.11及Ubuntu
  20. hostiko模板-WHMCS自适应模板-略站网

热门文章

  1. golang包管理解决之道——go modules初探
  2. 8天学通MongoDB——第四天 索引操作
  3. 剑指offer:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。
  4. Java instanceof 关键字【复习】
  5. Android——设置布局的背景颜色
  6. java derby连接_JAVA-Derby连接
  7. mysql数据库array_mysql数据库array
  8. 一个图片 在另一个图片定位_淋雨图片孤身一人 一个人在淋雨的图片_新闻资讯...
  9. ML:MLOps系列讲解之《MLOps的定义与发展—你为什么可能想使用机器学习》解读
  10. AI:2020年6月22日北京智源大会演讲分享之机器感知专题论坛—13:30-14:10山世光教授《从看脸到读心:基于视觉的情感感知技术》