Android @IntDef的使用 - 代替枚举

来源:互联网 发布:超基因优化液txt下载 编辑:程序博客网 时间:2024/06/13 18:16

Android @IntDef的使用 - 代替枚举

官方文档说明,安卓开发应避免使用Enum(枚举类),因为相比于静态常量Enum会花费两倍以上的内存。[ 参考 ]
那么如果需要使用Enum应该怎么做呢?

public class MainActivity extends Activity {    //先定义 常量    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 "包住" 常量;    // @Retention 定义策略    // 声明构造器    @IntDef({SUNDAY, MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY})    @Retention(RetentionPolicy.SOURCE)    public @interface WeekDays {}    @WeekDays int currentDay = SUNDAY;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        setCurrentDay(WEDNESDAY);        //声明变量        @WeekDays int today = getCurrentDay();        switch (today){            case SUNDAY:                break;            case MONDAY:                break;            case TUESDAY:                break;            case WEDNESDAY:                break;            case THURSDAY:                break;            case FRIDAY:                break;            case SATURDAY:                break;            default:                break;        }    }    public void setCurrentDay(@WeekDays int currentDay) {        this.currentDay = currentDay;    }    @WeekDays    public int getCurrentDay() {        return currentDay;    }}

build.gradle中

compile ‘com.android.support:support-annotations:22.0.0‘

转载自http://www.bubuko.com/infodetail-1070320.html

0 0
原创粉丝点击