文章插图
Android Studio 内置了代码检查工具 Lint,可在菜单栏选择 Analyze > Inspect Code 执行相应的代码检查,代码检查能够根据推断一些不合法的潜在问题,有助于在开发阶段发现开发者因为主管原因导致的一下代码问题,Android 官方提供了注解库 support-annotations 来帮助开发者及早发现问题,下面是常用的一些注解,主要内容如下:
- Nullness注解
- 资源注解
- 线程注解
- 值约束注解
- 权限注解
- 返回值注解
- CallSuper注解
- Typedef注解
- 可访问性注解
- @Nullable :表示可以为 null 的变量、参数或返回值,
- @NonNull :表示不可为 null 的变量、参数或返回值 。
文章插图
资源注解资源注解的使用可使得在源码阶段让编辑器检查书写的不规范,也可在一定程度上优化代码结构,下面是常见的资源注解如下:
- @StringRes: 表示检查是否包含R.string引用
- @ColorRes: 表示检查是否包含R.color引用
- @ColorInt: 表示检查是否包含表示颜色的整型
- @DrawableRes: 表示检查是否包含R.drawable引用
- @DimenRes: 表示检查是否包含R.dimen引用
- @InterpolatorRes:表示检查是否包含插值器引用
- @MainThread:表示主线程
- @UiThread:表示 UI 线程
- @WorkerThread:表示工作线程
- @BinderThread:表示Binder线程
- @AnyThread:表示任何一个线程
值约束注解使用值约束注解可验证传递的参数的值的合法性,可以借此指定参数的设置范围,可在一定程度上减少代码在主观程度上出现的错误,常见的值约束注解如下:
- @IntRange:表示可以验证整型参数是否在指定范围内
- @FloatRange:表示可以验证浮点型参数是否在指定范围内
- @Size:表示可以验证集合、数组、字符串参数是否在指定范围内,可指定最大值、最小值以及确切值
权限注解权限注解 @RequiresPermission 可以验证方法调用方的权限,即当使用了权限注解的方法时会检查有没有指定的权限,如果没有则会提示要在 AndroidManifest.xml 文件中申明权限,如果是危险权限还有进行权限动态申请,使用方式参考如下:
文章插图
返回值注解返回值注解 @CheckResult 会检查某个方法的返回值是否被使用,如果没有被使用,则会根据 suggest 配置建议使用相同公民没有返回值的另一个方法,如果返回值使用了,则和未加该注解的方法一样,使用方式参考如下:
@CheckResult(suggest="#enforcePermission(String,int,int,String)")public int checkPermission(@NonNull String permission, int pid, int uid){ return 0;}如果没有使用返回值提示如下:
文章插图
当返回值没有被使用,则会建议使用相同功能没有返回值的另一个方法,简而言之,返回值注解 @CheckResult 能够表示某个方法实际使用的时方法本身的处理还是方法最终的处理结果 。
文章插图
CallSuper注解使用 @CallSuper 注解会验证子类的重写方法是否调用父类的实现,这样约束的好处是可保证父类的实现不会修改,当然,如果不使用该注解,子类重写父类的方法可以不调用弗父类的默认实现,具体参考如下:
推荐阅读
- 硬核!如何模拟 5w+ 的并发用户?
- 在 Linux 中使用变量
- 如何在 Linux 上创建和使用交换文件
- CPU是如何访问内存的?
- 如何零基础入门编程
- 化妆刷掉毛 如何洗化妆刷不炸毛
- 汽车|比亚迪如何把一辆车卖到100万元?
- 风水解读黄道吉日如何挑选
- 店铺信用卡支付怎么开通 淘宝店如何开通信用卡付款
- 银行卡如何实名认证 中国银行实名认证