还在用枚举 我早就抛弃了.doc

还在用枚举 我早就抛弃了.doc

ID:58008341

大小:317.00 KB

页数:11页

时间:2020-04-20

还在用枚举 我早就抛弃了.doc_第1页
还在用枚举 我早就抛弃了.doc_第2页
还在用枚举 我早就抛弃了.doc_第3页
还在用枚举 我早就抛弃了.doc_第4页
还在用枚举 我早就抛弃了.doc_第5页
资源描述:

《还在用枚举 我早就抛弃了.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、还在用枚举我早就抛弃了!(Android注解详解)本片文章讲解怎么使用SupportAnnotations注解优化代码,比如使用android特有的魔术变量注解替代Enum等功能。不要看见使用注解就想到反射会影响性能之类,今天我们就来学习一下AndroidSupportAnnotations注解来优化我们的代码,增加可读性的同时,也让让更多的错误消灭在萌芽之中。作者:OCNYang来源:安卓巴士Android开发者门户

2、2017-01-1219:59 收藏  分享前言:使用SupportAnnotations注解优化代码本片文章讲解

3、怎么使用SupportAnnotations注解优化代码,比如使用android特有的魔术变量注解替代Enum等功能。不要看见使用注解就想到反射会影响性能之类,今天我们就来学习一下AndroidSupportAnnotations注解来优化我们的代码,增加可读性的同时,也让让更多的错误消灭在萌芽之中。SupportAnnotations简介:Androidsupportlibrary不断地引入新的注解库,它包含很多有用的元注解,你能用它们修饰你的代码,帮助你发现bug。Supportlibrary自己本身也用到了这些注解,所以作为s

4、upportlibrary的用户,AndroidStudio已经基于这些注解校验了你的代码并且标注其中潜在的问题。SupportAnnotations如何引入:注解默认是没有包含的;它被包装成一个独立的库,如果使用了appcompat库,那么SupportAnnotations就会自动引入进来,因为appcompat使用了SupportAnnotations,如果没有则需要在build.gradle中添加如下配置:1.dependencies { 1.    compile 'com.android.support:support-

5、annotations:23.4.0' 2.}  如果你已经引入了appcompatv7则可能就没有必要再次引用support-annotations,因为appcompat默认包含了对其引用。SupportAnnotations分类:Typedef注解:IntDef/StringDef(Android特有的魔术变量注解替代Enum)EnuminAndroid枚举Enum在java中是一个完整的类.而枚举中的每一个值在枚举类中都是一个对象.所以在我们使用时枚举的值将比整数常量消耗更多的内存.当我们使用枚举在安卓应用中,如果我们的程序

6、本身内存消耗就比较大,或者是一个游戏的应用程序.那么我们最好使用常量来替代枚举。可是使用了常量代替后又不能限制取值了。那有什么好的办法呢?当然,Android支持注解库中有一些好用的annotationhelper我们可以使用它们来解决我们之前的问题(在编译代码时期).IntDef和StringDef是两个魔术变量注解.使用这个两个来替代之前使用的Enum.它将帮助我们在编译代码时期像Enum那样选择变量的功能。@IntDef和”typedef”作用非常类似,你可以创建另外一个注解,然后用@IntDef指定一个你期望的整型常量值列表

7、,最后你就可以用这个定义好的注解修饰你的API了。接下来我们来使用IntDef来替换Enum看一下.1.public class MainActivity extends Activity { 2.    public static final int SUNDAY = 0; 3.    public static final int MONDAY = 1; 4.    {...省略部分} 5. 1.    @IntDef({SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, 

8、SATURDAY}) 2.    @Retention(RetentionPolicy.SOURCE) 3.    public @interface WeekDays { 4.    } 5. 6.    @WeekDays 7.    int currentDay = SUNDAY; 8. 9.    @Override 10.    protected void onCreate(Bundle savedInstanceState) { 11.        super.onCreate(savedInstanceState)

9、; 12.        setContentView(R.layout.activity_main); 13. 14.        setCurrentDay(WEDNESDAY); 15. 16.        @WeekDay

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。