提高代码质量-注解篇
Android support-annotations 是通过静态编译检测来提高代码质量的一个注解工具
1.资源类型注解:
一个常见的例子
@LayoutRes
public void setLayout(@LayoutRes int layoutId){
setContentView(layoutId);
}
setLayout(123);
这时候Lint(代码检测工具)会出现一个警告,资源常量和123都是int类型,如果没有该注解,就不会出现该警告。
类似情况还存在于String资源和颜色字符资源
一些常用的资源注解:
@LayoutRes
@ColorRes
@ColorInt
@StringRes
@AnimRes
@DrawableRes
2.检测参数或者返回值是否可以为 null
@NonNull:指出一个参数,变量,或方法返回值永远不可为null。
@Nullable:指出一个参数,变量,或方法返回值可能为null。
3.线程注解类型
@UiThread @MainThread(这两个表示的意义一样)
@WorkerThread @BinderThread
4.权限注解类型
@RequiresPermission
用来表明该函数执行需要一个或者多个权限,如果没有声明这些权限,则会给出警告。
5.父函数调用
@CallSuper
来表明重写这个函数需要调用 super 父函数
6.值约束注解
@FloatRange(from=0.0,to=1.0)
@Size根据具体情况
@Size(max=10)字符串长度 @size(6)数组个数
7.混淆
@Keep
保证代码不被混淆
8.提示性的
@Deprecated,表示当前方法即将废弃,不推荐使用。
@SuppressWarnings,表示忽略编译器的警告信息。\n@link 链接处