您的位置:首页 > 其它

@IntDef的使用

2015-11-21 10:52 197 查看

android开发Enum (枚举)的完美替代 —— @IntDef的使用

2015-11-21 10:52
4603人阅读 评论(0)
收藏
举报


分类:
android开发-基础篇(5)


     官方文档说明,安卓开发应避免使用Enum(枚举类),因为相比于静态常量Enum会花费两倍以上的内存。参 http://developer.android.com/training/articles/memory.html#Overhead

    那么如果需要使用Enum应该怎么做呢?

    https://noobcoderblog.wordpress.com/2015/04/12/java-enum-and-android-intdefstringdef-annotation/

[java]
view plain
copy

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 <
4000
span class="keyword">static final int SATURDAY = 6;  
    
    //用 <span></span>@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;  
    }  
}  


使用注解库

这些注解不是默认加载的,它们被包装为一个单独的库。Support Library现在是由一些更小的库组成的,包括:v4-support、appcompat、gridlayout、mediarouter等等。

添加注解的最简单的方法就是打开Project Structure对话框。首先在左边选中module,然后右边选中Dependencies标签,点击“+”号按钮,选择Library Dependency。如果SDK中已经包括了Android Support库,那么注解支持库就会显示在快捷选择列表中了,只需要点击选择就可以。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: