类、方法、变量、参数、包都可被注解标注
通过反射获取标注内容
编译器生成类文件时,标注可被嵌入到字节码中
jdk1.8带的元注解:
注解处理类:
实现:java.lang.reflect.AnnotatedElement 接口
Class、Method、Field、Constructor等与反射相关的类、接口都实现了此接口
1. 常用元注解
1.1
(1)@Override
(2)@deprecated
(3)@SuppressWarnings
压制警告信息
@SuppressWarnings("all") public class AnalysisAnno { public static void main(String[] args) { } }
1.2 Target
描述注解修饰的范围 取值:java.lang.annotation.ElementType
TYPE:描述类、接口、enum类型 METHOD:描述方法 PACKAGE:描述包 PARAMETER:描述方法的变量 FIELD: CONSTRUCTOR: LOCAL_VARIABLE: ANNOTATION_TYPE: //1.8 TYPE_PARAMETER: TYPE_USE:
1.3 Retention
注解保留的时间长短 取值:java.lang.annotation.RetentionPolicy
SOURCE:在源文件中有效,编译时会被忽略
CLASS:和源文件一起编译在class文件中,运行时忽略。默认。
RUNTIME:运行时有效
只有为RUNTIME时,才能通过注解反射获取到注解
2. 自定义注解
原文:https://www.cnblogs.com/taoXiang/p/13951181.html