注解准备知识:看到一个注解的源码
@Target 使用注解时的作用的目标
ElementType.ANNOTATION_TYPE 可以【给一个注解进行注解】
ElementType.CONSTRUCTOR 可以给构造方法进行注解
ElementType.FIELD 可以给属性进行注解
ElementType.LOCAL_VARIABLE 可以给局部变量进行注解
ElementType.METHOD 可以给方法进行注解
ElementType.PACKAGE 可以给一个包进行注解
ElementType.PARAMETER 可以给一个方法内的参数进行注解
ElementType.TYPE 可以给一个类型进行注解,比如类、接口、枚举
@Retention 注解生效的作用域
RetentionPolicy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视。
RetentionPolicy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中。
RetentionPolicy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。
@Documented 这个元注解肯定是和文档有关。它的作用是能够将注解中的元素包含到 Javadoc 中去
@Inherited 表明该注解如果注解了父类,那么子类就会继承这些注解(即使子类没有被任何注解)
@Repeatable 表明该注解可以在同一目标上多次使用,就像可以贴多个标签
@AliasFor 注解属性的别名 (给注解的这个属性赋值就等于给AliasFor的这个属性赋值)
注解可以有多个属性,没有指明key的,会【默认给注解属性的value()赋值】
原文:https://www.cnblogs.com/Frank99/p/10824422.html