定义
jdk5.0引入,以“@注解名”在代码中存在,在不改变原有逻辑的情况下, 在源文件中潜入一些补充信息
注解可以在类编译、运行时进行加载,体现不同的功能
可以修饰包、类、构造器、方法、成员变量、参数、局部变量
常见作用
生成文档相关的注解
在编译时进行格式检查
跟踪代码依赖性,实现替代配置文件功能
JDK内置的三个基本注解
@Override
限定重写父类方法,只能用于方法
@Deprecated
用于表示修饰的元素已过时
@SuppressWarnings
抑制编译器警告
示例
class Person {
public void eat(){
}
}
class Student extends Person {
@Override
public void eat(){
}
}
自定义注解
以@SuppressWarnings为参照,进行定义即可
public @interface MyAnnotation {
// default是默认值
String value() default "method";
}
元注解
对现有的注解进行解释说明的注解
@Target
用于描述注解的使用范围
值是一个数组
@Retention
描述注解的声明周期
SOURCE
生成的字节码文件中不包含
CLASS
字节码文件中包含,运行时没有,不会加载内存中
RUNTIME
运行时在
@Documented
表明这个注解应该被javadoc工具记录
@Inherited
允许子类继承父类中的注解