当前位置:嗨网首页>书籍在线阅读

10-注解声明

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

10.2.1 注解声明

注解是一种将元数据附加到代码中的手段,在Kotlin中定义注解类时,需要将annotation修饰符放在类的前面。代码如下。

@Target(AnnotationTarget.PROPERTY)
annotation class Fancy

注解的附加属性可以通过元注解类来指定,关于元注解将在后面进行介绍。

下面是使用常用的注解标签定义Fancy类的完整实例。

@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION,
AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.EXPRESSION)
@Retention(AnnotationRetention.SOURCE)
@MustBeDocumented
annotation class FancyClass

在上面的注解实例中,通过众多注解标签修饰的注解类FancyClass可以得到某些信息:该注解类可用于类和函数,注解的信息只会保存在源码中,不能通过反射获取注解元数据的任何信息。同时,FancyClass类是公开API的一部分,在自动生成的API文档和函数签名中会包含注解的相关信息。

读者在学习注解相关的知识时,有一些注解常量需要注意。对于元注解@ Target来说,使用格式为@Target(AnnotationTarget.注解常量),其主要的注解常量有以下几种。

  • TYPE:用于声明注解类型。
  • FIELD:用于给字段添加注解。
  • METHOD:用于给方法添加注解。
  • PACKAGE:用于给包添加注解。
  • PARAMETER:用于给函数参数添加注解。
  • CONSTRUCTOR:用于给构造函数添加注解。
  • LOCAL_VARIABLE:用于给局部变量添加注解。
  • ANNOTATION_TYPE:用于给注解添加注解。

对于元注解@Retention来说,使用格式为@Target(AnnotationRetention.注解常量),其主要的注解常量如下。

  • SOURCE:声明注解在源码阶段有效。
  • CLASS:声明注解在编译类文件阶段有效。
  • RUNTIME:声明注解在运行时有效。