自定义注解

羊小咩2022年10月4日
大约 1 分钟

自定义注解

注解的基本元素

一个简单的注解的例子:

public @interface BindView {
    int value();
}
  • 修饰符 访问修饰符必须为public,不写默认为pubic

  • 关键字 @interface

  • 注解名称 自定义注解的名称 BindView

  • 注解类型元素 注解的内容 int value()

使用元注解修饰注解

  • @Target 表示该注解应用到的目标类型
  • @Retention 表示该注解应用到的生命周期
  • @Document 表示该注解被Javadoc 或类似的工具文档化
  • @Inherited 表示所标记的类的子类也会拥有这个注解

@Target

类型作用
ElementType.TYPE应用于类、接口(包括注解类型)、枚举
ElementType.FIELD应用于属性(包括枚举中的常量)
ElementType.METHOD应用于方法
ElementType.PARAMETER应用于方法的形参
ElementType.CONSTRUCTOR应用于构造函数
ElementType.LOCAL_VARIABLE应用于局部变量
ElementType.ANNOTATION_TYPE应用于注解类型
ElementType.PACKAGE应用于包
ElementType.TYPE_PARAMETER1.8版本新增,应用于类型变量
ElementType.TYPE_USE1.8版本新增,应用于任何使用类型的语句中(例如声明语句、泛型和强制转换语句中的类型)

@Retention

RetentionPolicy.SOURCE Java源文件阶段

RetentionPolicy.CLASS 编译到class文件阶段

RetentionPolicy.RUNTIME 运行期阶段

@Target(ElementType.FIELD) // 应用于属性
@Retention(RetentionPolicy.SOURCE) // Java源文件阶段
public @interface BindView {
    int value();
}