注解
基本注解
@JvaName
@JvaField
@JvnStatic
@JvmOverloads
@Throws
元注解
Kotlin元注解四个
@Target
目标注解 对应等注解类是kotlin.annotation.Target 指定一个新注解的适用目标
allowedTargets属性,属性用来设置适用目标,这个属性有15个常量
@Retention
保留期注解 ,指定一个新注解的有效范围
value属性,该属性用来设置保留期,有三个枚举常量
@Repeatable
可重复注解,它允许相同的程序元素中重复注解,可重复注解必须使用这个@Repeatable
来进行注解
@MustBeDocumented
文档注解,该注解可以修饰代码元素(类,接口,函数,属性等),文档生成工具可以提取这些注解信息
自定义注解
最简单的自定义注解代码:
annotation calss 注解名 申明注解
annotation calss 注解名(val value:String’) 申明一个带有属性的注解
annotation calss 注解名(val value:String = “注解信息”) 申明一个带有默认值的注解
使用这些自定义注解需要搭配元注解进行约束
注解目标声明
当有多个元素被修饰的可能时,可以使用注解目标声明指定注解修饰的具体元素
注解目标列表
file 文件
property 属性,使用此目标java中不可见
field 字段
get getter访问器
set setter访问器
receiver 扩展函数或函数的参数
param 构造函数的参数
setparam setter访问器参数
delegate 保存猥琐属性的字段
通过反射获取注解信息
获取反射实例化
val clz =user::class
val ann = clz.findAnnotation 获得所有注解信息