昨晚看到一篇好文章。然后是英文的。所以决定翻译分享给大家。这是原文链接: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链接处须要翻墙才干打开!

最新文章

  1. Spring学习记录(九)---通过工厂方法配置bean
  2. Android 创建内容提供器(ContentResolver)
  3. windows 80端口被占用的解决方法
  4. SQL2005删除复制数据库的发布与订阅的方法(转载)
  5. php中常用魔术方法的举例
  6. CDH 5.5.1 Yum源服务器搭建
  7. ifstream:incomplete type is not allowed
  8. 关于scroll无法绑定的问题
  9. MongoDB---性能优化---(1)
  10. MySQL中group_concat函数-和group by配合使用
  11. java_方法引用
  12. Eclipse如何将java项目改为web项目
  13. M - 约会安排 HDU - 4553 线段树 (最长连续段)
  14. k64 datasheet学习笔记45---10/100-Mbps Ethernet MAC(ENET)之概述
  15. 熔断监控集群(Turbine)
  16. PyCharm黄色波浪线提示: Simplify chained comparison
  17. jvisualvm连接远程应用终于成功,附踩大坑记录!!(一:jstatd方式)
  18. CF946D Timetable 动态规划
  19. 廖雪峰的python学习网址
  20. Hadoop On Demand

热门文章

  1. Wannafly挑战赛6
  2. equals()和hashCode()方法在集合类set中的使用
  3. jquery trigger
  4. 【Luogu】P2447外星千足虫(高斯消元)
  5. BZOJ-1798 维护序列
  6. c++ 的语法方面的问题
  7. [LeetCode] Jump Game 数组控制
  8. 转 Centos下安装apahce的configure: error: APR not found. Please read the documentation解决办法
  9. Linux Malloc分析-从用户空间到内核空间【转】
  10. 标准C程序设计七---105