一、注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。
二、JDK内置了三种基本注解类型
1. @Override 限定某个方法,是重写父类的方法。
2. @Deprecated 用于表示某个程序元素(类、方法等)已过时。
3. @SuppressWarnings 抑制编译器的警告。
三、四种元注解
1. @Retention 指定注解的作用范围 SOURCE(源码) CLASS(类)RUNTIME(运行时)
RetentionPolicy.SOURCE :编译器使用后,直接丢弃这种策略的注释。
RetentionPolicy.CLASS: 编译器把注解记录在class文件中,当运行java程序时,JVM不会保留注解。这是默认值。
RetentionPolicy.RUNTIME: 编译器将把注解记录在class文件中,当运行java程序是,JVM会保留注释,程序可以通过反射获取该注解。
2. @Target 指定注解可以在哪些地方使用(TYPE , FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, ANNOTATION_TYPE, PACKAGE, TYPE_PARAMETER, TYPE_USE)
3. @Document‘ 指定该注解是否会在javadoc体现
4. @Inherited 子类会继承父类注解