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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
还在用枚举 我早就抛弃了

还在用枚举我早就抛弃了!(Android注解详解)本片文章讲解怎么使用Support Annotations注解优化代码,比如使用 android特有的魔术变量注解替代Enum等功能。不要看见使用注解就想到反射会影响性能之类,今天我们就来学习一下Android Support Annotations注解来优化我们的代码,增加可读性的同时,也让让更多的错误消灭在萌芽之中。作者:OCNYang来源:安卓巴士Android开发者门户|2017-01-12 19:59?收藏??分享前言:使用Support Annotations注解优化代码本片文章讲解怎么使用Support Annotations注解优化代码,比如使用 android特有的魔术变量注解替代Enum等功能。不要看见使用注解就想到反射会影响性能之类,今天我们就来学习一下Android Support Annotations注解来优化我们的代码,增加可读性的同时,也让让更多的错误消灭在萌芽之中。Support Annotations 简介:Android support library 不断地引入新的注解库,它包含很多有用的元注解,你能用它们修饰你的代码,帮助你发现bug。Support library 自己本身也用到了这些注解,所以作为 support library 的用户,Android Studio已经基于这些注解校验了你的代码并且标注其中潜在的问题。Support Annotations 如何引入:注解默认是没有包含的;它被包装成一个独立的库,如果使用了appcompat库,那么 Support Annotations 就会自动引入进来,因为appcompat使用了 Support Annotations,如果没有则需要在build.gradle中添加如下配置:dependencies?{?????compile?com.android.support:support-annotations:23.4.0?}??如果你已经引入了appcompat v7 则可能就没有必要再次引用 support-annotations ,因为appcompat默认包含了对其引用。Support Annotations分类:Typedef注解:IntDef / StringDef (Android特有的魔术变量注解替代Enum)Enum in Android 枚举Enum在java中是一个完整的类. 而枚举中的每一个值在枚举类中都是一个对象. 所以在我们使用时枚举的值将比整数常量消耗更多的内存. 当我们使用枚举在安卓应用中, 如果我们的程序本身内存消耗就比较大,或者是一个游戏的应用程序. 那么我们最好使用常量来替代枚举。可是使用了常量代替后又不能限制取值了。那有什么好的办法呢?当然, Android 支持注解库中有一些好用的annotation helper 我们可以使用它们来解决我们之前的问题(在编译代码时期).IntDef和StringDef是两个魔术变量注解. 使用这个两个来替代之前使用的Enum. 它将帮助我们在编译代码时期像Enum那样选择变量的功能。 @IntDef和”typedef”作用非常类似,你可以创建另外一个注解,然后用@IntDef指定一个你期望的整型常量值列表,最后你就可以用这个定义好的注解修饰你的API了。接下来我们来使用IntDef来替换Enum看一下.public?class?MainActivity?extends?Activity?{?????public?static?final?int?SUNDAY?=?0;?????public?static?final?int?MONDAY?=?1;?????{...省略部分}??????@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?

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档