Support Annotation Library的介绍

Support Annotation Library是一个函数库,主要用于对代码进行注解,准确的说应该是对参数和函数返回值进行注解,以参数为例,当调用者传入的参数与注解要求的参数类型不一致时,程序在编译时就会直接报错,便于及时修正错误。
使用这个函数库需要添加如下依赖:

implementation 'com.android.support:support-annotations:28.0.0'

其包含的注解类型有;

  1. Nullness注解:参数或函数可空性注解,作用于参数或者函数返回值前;
    1.1 @Nullable标记参数或者返回值可以为空;
    1.2 @NonNull标记参数或者返回值不可为空;

  2. Res注解:资源类型注解,由于Android资源文件都是在R文件中通过唯一整型值进行识别的,所以存在传入资源与需要的资源类型不匹配的情况,且此种情况编译时无法识别,运行时才会异常
    2.1 @ArrayRes标记整型值是Android.R.array类型;
    2.2 @DrawableRes标记整型值为Android.R.drawable类型;
    其他同理。

  3. 线程注解:用于对不同线程进行注解,便于区分,一个程序UI线程一般有多个,每个页面对应一个,但是MainThread只会有一个;
    3.1 @UiThread表示UI线程,标识代码运行在UI线程;
    3.2 @MainThread标识代码运行于主线程;
    3.3 @WorkThread标识代码运行于后台线程;

  4. 值范围注解:当函数参数的取值在一定范围之内时,可以使用值注解来防止调用者传入错误的参数;
    4.1 @size:用于类似数据、集合和字符串子类的参数,我们可以使用@size注解来表示这些参数的大小:
    4.1.1 @size(min = 1):可以表示集合的内容不能为空;
    4.1.2 @size(max=23):表示字符串最大字符数是23;
    4.1.3 @size(2):可以表示数组元素的个数是两个;
    4.1.4 @size(multiple=2):可以表示数组的大小是2的倍数;
    4.2 @IntRange:参数类型是int或者long:
    public void setAlpha(@IntRange(from=0,to=255) int alpha){…}
    4.3 @FloatRange:参数类型是float或者double:
    public void setAlpha(@FloatRange(from=0.0,to=1.0) float alpha){…}

  5. 权限注解:当某些代码需要系统提供相应静态权限时,可以在代码块上方添加权限注解模块;
    5.1 如果函数调用需要声明一个权限,示例如下:
    @RequirePermission(Manifest.permission.SET_WALLPAPER)
    public abstract void setWallpaper(Bitmap bitmap) throws IOException;
    5.2 如果函数调用需要声明集合中至少一个权限,示例如下:

@RequirePermission (anyOf = {
        Mainifest.permission.ACCESS_COARSE_LOCATION,
        Mainfest.permission.ACCESS_FINE_LOCATION})
public abstract Location getLastKnowLocation(String provider);

5.3 如果函数调用需要声明集合中全部权限,示例如下:

@RequirePermission(allOf = {
    Mainfest.Permission.ACCESS_COARES_LOCATION,
    Manifest.Permission.ACCESS_FINE_LOCATION})    
    public abstract void getLast(String s);
  1. 可见性注解:在对程序进行测试时可能需要访问一些不可见的类,函数或者变量
    @VisibleForTesting 使其对测试可见;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值