Kotlin笔记-031注解

241 阅读2分钟

注解

注解的定义:annotation

// 限定标注对象;只能给 class 注解
@Target(AnnotationTarget.CLASS)
// 指定作用时机;作用于运行时
@Retention(AnnotationRetention.RUNTIME)
annotation class Action(val name:String) // 注解的参数

注解的参数类型,仅支持以下类型以及数组:

基本类型,KClass,枚举,其他注解(都是编译期能确定值的类型)

注解的使用

// 注解的使用;Action 注解只能作用于类
@Action("ActionUser")
class ActionUser{}

常见内置注解

Kotlin 标准库的通用注解

  • Metadata - Kotlin 反射的信息通过该注解附带在元素上
  • UnsafeVariance - 泛型用来破除型变限制
  • Suppress - 用来消除编译器警告,警告类型作为参数传入

JVM 相关注解

  • JvmField - 生成 Java Field
  • JvmName - 指定类/文件/函数等生成的 JVM 名称
  • JvmOverloads - 函数默认参数生成函数重载
  • JvmStatic - 生成静态成员
  • Throws - 抛出指定异常
  • Synchronized - 生成同步方法

注解

注解的定义:annotation

// 限定标注对象;只能给 class 注解
@Target(AnnotationTarget.CLASS)
// 指定作用时机;作用于运行时
@Retention(AnnotationRetention.RUNTIME)
annotation class Action(val name:String) // 注解的参数

注解的参数类型,仅支持以下类型以及数组:

基本类型,KClass,枚举,其他注解(都是编译期能确定值的类型)

注解的使用

// 注解的使用;Action 注解只能作用于类
@Action("ActionUser")
class ActionUser{}

常见内置注解

Kotlin 标准库的通用注解

  • Metadata - Kotlin 反射的信息通过该注解附带在元素上
  • UnsafeVariance - 泛型用来破除型变限制
  • Suppress - 用来消除编译器警告,警告类型作为参数传入

JVM 相关注解

  • JvmField - 生成 Java Field
  • JvmName - 指定类/文件/函数等生成的 JVM 名称
  • JvmOverloads - 函数默认参数生成函数重载
  • JvmStatic - 生成静态成员
  • Throws - 抛出指定异常
  • Synchronized - 生成同步方法