logo头像
Snippet 博客主题

使用注解机制代替枚举

本文于 1337 天之前发表,文中内容可能已经过时。

使用注解等注解代替Enum

在Android开发过程中,使用Enum所占用的内存比单纯使用int变量定义的内容明显要大,为了提高软件的使用性,建议使用注解的方法。
#使用方法

1.引用依赖包

目前以Android Studio 3.1.2为例子

`implementation 'com.android.support:support-annotations:27.1.1'`

如果是以前的版本则使用

`compiler 'com.android.support:support-annotations:27.1.1'`

2.创建注解类

如果是以Int作为标志,则使用IntDef的注解,以下以季节为例子

@IntDef({SPRING, SUMMER, AUTUMN, WINTER})
@Retention(RetentionPolicy.SOURCE)
public @interface Season {
int SPRING = 0;
int SUMMER = 1;
int AUTUMN = 2;
int WINTER = 3;
}

步骤

  • 创建interface
  • 在interface中添加字段
  • 在interface前面添加@
  • 添加IntDef({添加之前添加的字段})
  • 在IntDef后添加@Retention(RetentionPolicy.SOURCE)

3.具体引用

@Season int season = Season.SPRING;
switch (season) {
case Season.AUTUMN:
break;
case Season.SPRING:
break;
case Season.SUMMER:
break;
case Season.WINTER:
break;
}

4.备注

如果在使用的变量的前方标注了注解,则可以在switch(season)后通过alt+enter直接列举出所有的case情况。