一句话解释注解
代码的元数据。注解本身不具备任何的功能,不具备任何的逻辑处理代码。
注解的应用场景
ElementType(java.lang.annotation ),该枚举列举了应用场景:
TYPE | FIELD | METHOD | PARAMETER | CONSTRUCTOR | LOCAL_VARIABLE | ANNOTATION_TYPE | PACKAGE |
---|
枚举值所见即所得,也就是说在以上地方都是可以加注解的。
定义注解的时候,需指定适用的场景。
注解的生存周期
准确地说应该是“Retention”,某度一把是“保持力”的意思。
RetentionPolicy(java.lang.annotation ),该枚举说明了注解信息被抛弃的时机:
枚举值 | 含义 |
---|---|
SOURCE | 源码级,编译后即被抛弃,常见的@Override就这种 |
CLASS | 跟随编译后的class文件,但是JVM加载时被抛弃,默认这个,例子没看到 |
RUNTIME | 不会被抛弃,JVM加载后会记录该注解信息,通过反射可以获取该信息,例如@Service |