使用Android注解来改善代码
来源:互联网 发布:淘宝上利郎代购 编辑:程序博客网 时间:2024/06/05 00:41
昨晚看到一篇好文章,然后是英文的,所以决定翻译分享给大家,这是原文链接:http://www.michaelevans.org/blog/2015/07/14/improving-your-code-with-android-support-annotations/
如果你还没听说过Android支持注解库,那么你将错过可以帮助你捕获bug的一个轻便灵活的新包。在这个库中包含了很多Java的注解,它将帮助Android Studio为了可能出现的错误来检查你的代码,并且反馈通知给你。这个库有相当多的注解,在此我只打算说明几个,但是如果你需要其余部分完整清晰的说明文档,可以在这里查看:check out the docs。
@NonNull 与 @Nullable
@NonNull 与 @Nullable 可能是支持注解中最基础的,但是绝大多数情况下还是很有用的。 如果参数或者方法的返回值可能是null为空的,则以注释一个参数或者方法来表示。目前Android Studio 给予了一个很好的警告提示,在我们做了一些不安全严谨的编码操作的时候。
例如这样:
修改后是这样:
更赞的是:我们甚至可以像例子一样更进一步的使用@CheckResult注解,来告诉我们该方法的返回值类型是我们预计要使用的,而不是错误效果的方法:
@StringRes 与 @DrawableRes 等等
你是不是在TextView上调用setText方法,经常会出现莫名其妙的异常java android.content.res.Resources$NotFoundException: String resource ID #0x3039
? 如果设置了一个整型数给setText,TextView会假定这个整型数是一个字符串的资源id,为了设置string文本将会查询这个整数。对于整型数是无效的资源id的问题,可以通过@StringRes 注解来补救。
public void setText(@StringRes int id) { // Do something like getString(id), etc. }
如果你设置无效的字符串资源id到setText方法里,就会如下图显示:
这个库还为所有的资源类型都提供了相对应的资源注解:java@DrawableRes, @ColorRes,@InterpolatorRes
, 等等。
@Keep
今天发现了一个新支持注解@Keep。根据注解文档描述,这个注解还没有连接到Gradle插件中,但是当在混淆app的时候通过注释方法和类可以被保留。
这个便捷的注解就通知混淆器保留对应的方法和类,就像这样:
public class Example { @Keep public void doSomething() { // hopefully this method does something } ... }
如果你正在用的是appcompat-v7的包,就已经包括了 support-annotations的库,那就开始愉快的使用吧!(逗比这么简单的文章还要你翻译,臭不要脸的…Orz!)
以上check out the docs链接处需要翻墙才能打开!
- 使用Android注解来改善代码
- 使用Android注解来改善代码
- 使用Android Lint来改善你的代码
- API指南之使用lint来改善你的代码
- 【分享笔记】使用lint来改善你的代码
- Android Studio官方文档之用注解检查改善代码质量
- 使用case语句来改善verilog代码中if……else分支过多的问题
- Android注解使用之使用Support Annotations注解优化代码
- Android注解使用之使用Support Annotations注解优化代码
- Mockito 使用注解来初始化的代码片断 例子
- 使用Java注解来简化你的代码
- 使用Java注解来简化你的代码
- 使用jQuery来改善源代码浏览体验
- 6、android:使用自定义注解精简代码
- Android中使用注解来代替枚举类的方式
- 使用dex2jar来反编译android代码
- Android使用代码来写布局实例
- android-使用butterknife来对代码优化
- Linux 环境定制.bashrc 文件
- Xcode6.4都不能使用原来的那些好用的插件了吗?
- spring配置和dubbo
- C#实现微信公众号群发消息(解决一天只能发一次的限制)
- php查询当月sql记录
- 使用Android注解来改善代码
- Server Tomcat v7.0 Server at localhost failed to start.
- SAS9.3完全版启动时报错逻辑库“SASHELP”及其解决方法
- 黑马程序员——第七天(线程间通信)
- dispatch_once和@synchronized的单例模式
- Num 3 : ZOJ : 1241 Geometry Made Simple
- Android-DPI-Calculator
- 【Android使用Shape绘制虚线,在4.0以上的手机显示实线】解决方案
- Linux查看磁盘使用情况