注解:
Java注解(Annotation)又称为元数据,它为我们在代码中添加信息提供了一种形式化的方法。 它是JDK1.5引入的,Java定义了一套注解,共有7个,3个在java.lang中,剩下4个在 java.lang.annotation 中。
作用在代码中的注解有三个,它们分别是:
@Override :重写标记,一般用在子类继承父类后,标注在重写过后的子类方法上。如果发现 其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated :用此注解注释的代码已经过时,不再推荐使用。
@SuppressWarnings :这个注解起到忽略编译器的警告作用。
元注解有四个,元注解就是用来标志注解的解释。它们分别是:
@Retention :标识如何存储,是只在代码中,还是编入class文件中,或者是在运行时可以通过 反射访问。
RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃。
RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期。
RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在。
@Documented :标记这些注解是否包含在JavaDoc中。
@Target :标记这个注解说明了 Annotation所修饰的对象范围,Annotation可被用于 packages, types (类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变 量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。取值如下:
@inherited :标记这个注解是继承于哪个注解类的。
从JDK1.7开始,又添加了三个额外的注解,它们分别是
@SafeVarargs :在声明可变参数的构造函数或方法时,Java编译器会报unchecked警告。使 用@SafeVarargs可以忽略这些警告。
@FunctionalInterface :表明这个方法是一个函数式接口。
@Repeatable :标识某注解可以在同一个声明上使用多次。