注解说明
标准注解
@Override
表示当前的方法定义将覆盖超类中的方法。如果你不小心拼写错误,或者方法签名对不上被覆盖的方法,编译器就会发出错误提示。
@Deprecated
如果程序员使用了注解为它的元素,那么编译器会发出警告信息。
@SuppressWarnings
关闭不当的编译器警告信息。在java SE5之前的版本中,也可以使用该注解,不过会被忽略不起作用。
四种元注解
@Target({ ElementType.TYPE, ElementType.METHOD })
- 作用: 用于描述注解的使用范围(即:被描述的注解可以用在什么地方)
- ElementType值:
- CONSTRUCTOR:用于描述构造器
- FIELD:用于描述域
- LOCAL_VARIABLE:用于描述局部变量
- METHOD:用于描述方法
- PACKAGE:用于描述包
- PARAMETER:用于描述参数
- TYPE:用于描述类、接口(包括注解类型) 或enum声明
@Retention(RetentionPolicy.RUNTIME)
- 作用: @Retention可以用来修饰注解,是注解的注解,称为元注解。
- 按生命周期来划分可分为3类:
RetentionPolicy.SOURCE:注解只保留在源文件,当Java文件编译成class文件的时候,注解被遗弃;
RetentionPolicy.CLASS:注解被保留到class文件,但jvm加载class文件时候被遗弃,这是默认的生命周期;
RetentionPolicy.RUNTIME:注解不仅被保存到class文件中,jvm加载class文件之后,仍然存在;
@Documented
将此注解包含在 javadoc 中 ,它代表着此注解会被javadoc工具提取成文档。在doc文档中的内容会因为此注解的信息内容不同而不同。相当与@see,@param 等。
@Inherited
允许子类继承父类中的注解。
其他注解
@Aspect
切面编程注解,作用是把当前类标识为一个切面供容器读取。