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

简介: Android @IntDef注解取代Java enum枚举提高性能为提高Android性能,Android官方建议使用@IntDef注解替代Java的enum枚举。
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;
        }


相关文章
|
11天前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
97 60
|
17天前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
84 43
Java学习十六—掌握注解:让编程更简单
|
12天前
|
Java 开发者 Spring
[Java]自定义注解
本文介绍了Java中的四个元注解(@Target、@Retention、@Documented、@Inherited)及其使用方法,并详细讲解了自定义注解的定义和使用细节。文章还提到了Spring框架中的@AliasFor注解,通过示例帮助读者更好地理解和应用这些注解。文中强调了注解的生命周期、继承性和文档化特性,适合初学者和进阶开发者参考。
36 14
|
12天前
|
前端开发 Java
[Java]讲解@CallerSensitive注解
本文介绍了 `@CallerSensitive` 注解及其作用,通过 `Reflection.getCallerClass()` 方法返回调用方的 Class 对象。文章还详细解释了如何通过配置 VM Options 使自定义类被启动类加载器加载,以识别该注解。涉及的 VM Options 包括 `-Xbootclasspath`、`-Xbootclasspath/a` 和 `-Xbootclasspath/p`。最后,推荐了几篇关于 ClassLoader 的详细文章,供读者进一步学习。
26 12
|
4天前
|
算法 JavaScript Android开发
|
11天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
20 4
|
8天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
11 1
|
15天前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
16 2
|
6天前
|
Java 编译器
Java进阶之标准注解
Java进阶之标准注解
18 0
|
移动开发 Java 中间件
从 Android 到 Java:如何从不同视角解决问题?
Android 转 Java 开发在技术栈上有哪些差异?思考和解决问题时又会有怎样的转变?本文分享阿里技术专家从 Android 开发转 Java 应用开发的心得感受,分析两者差异及在动态性、兼容性、内存管理和状态问题等方面的一些看法,并总结了在阿里做一个 Android 开发和 Java 开发所需要的技术栈。
2479 0
从 Android 到 Java:如何从不同视角解决问题?