Android support library从19.1版本开始引入了一个新的注解库,它包含很多有用的元注解,你能用它们修饰你的代码,帮助你发现bug(编译报错提醒)

添加依赖:
implementation 'com.android.support:support-annotations:22.2.0'

使用注解:
@IntDef & @StringDef(替代 Java 中枚举的注解)

@Nullable & @NonNull(可修饰成员属性,方法参数和返回值)
@Nullable:注解的元素可以为 null。
@NonNull:注解的元素不可以为 null

@FloatRange & @IntRange(可修饰方法参数、方法返回值、成员属性)
是用于限定范围的注解。其中 @FloatRange 是限定 float 类型的,而 @IntRange 是限定 int 类型的
@IntRange(from= 1, to = 180)
private int intValue=2

@Size 注解的作用是限定长度的(可修饰成员属性,方法参数和返回值)

@RequiresPermission 该注解作用是表明方法所执行的内容需要权限
@ RequiresPermission( Manifest. permission. CALL_PHONE)
private void callPhone(String phone){
}

@CheckResult 注解是作用于方法上的,作用是检验有没有处理返回值。如果没有处理返回值则会报错

@UiThread:表示标记的方法或构造函数只应该在 Ui 线程上调用。如果标记的是一个类,那么该类中的所有方法都应是在 Ui 线程被调用

@WorkerThread:表示标记的方法只应该在工作线程上调用。如果标记的是一个类,那么该类中的所有方法都应是在一个工作线程上调用