跳到主要内容

注解

Annotation
写在代码中的特殊标记
这些标记可以在编译、类加载、运行时被读取,并执行相应的处理
注解一般跟反射有关系

元注解

修饰注解的注解

  • @Target:指定注解的修饰对象
    • ElementType:修饰对象的类型
      • ElementType.TYPE:类、接口、枚举
      • ElementType.FIELD:字段
      • ElementType.METHOD:方法
      • ElementType.PARAMETER:方法的参数
      • ElementType.CONSTRUCTOR:构造方法
      • ElementType.PACKAGE:包
      • ElementType.ANNOTATION:注解
  • @Retention:指定注解的保留时间
    • RetentionPolicy:保留时间
      • RetentionPolicy.SOURCE:源码,编译后就不保留了
      • RetentionPolicy.CLASS:字节码,保留到.class中,可以给一些字节码工具使用
      • RetentionPolicy.RUNTIME:运行时,可以通过反射获取

自定义注解

// 仅用作标注,具体逻辑不在这里
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value() default "hello"; // 注解的参数
}