Java内部的三种标准注解
@Override
表示当前的方法定义将覆盖超类中的方法。如果不小心拼错了,或者方法签名对不上被覆盖的方法,编译器就会发出错误提示。
@Deprecated
如果程序员使用了注解为它的元素,那么编译器会发出警告信息
@SuppressWarnings
关闭不当的编译器警告信息
Java还另外提供了四种元注解,专门负责新注解的创建。
@Target
表示该注解可以用于什么地方,可能的ElementType参数包括
- CONSTRUCTOR:构造器的声明
- FIELD:域声明(包括enum实例)
- LOCAL_VARIABLE:局部变量声明
- METHOD:方法声明
- PACKAGE:包声明
- PARAMETER:参数声明
- TYPE:类、接口(包括注解类型)或enum声明
@Retention
表示需要在什么级别保存该注解信息。可选的RententionPolicy参数包括:
- SOURCE:注解将被编译器丢弃
- CLASS:注解在class文件中可以用,但会被VM丢弃
- RUNTIME:VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息
@Documented
将此注解包含在Javadoc中
@Inherited
允许子类继承父类中的注解
每当你创建描述符性质的类或者接口时,一旦其中包含了重复性的工作,就可以使用注解来简化与自动化该过程。注解可以看成一个独立的文档化工具,专门设计用来生成类似注解一样的文档。注解一旦被创建出来,就享有编译器的类型检查保护。注解是在实际的源代码级别保存所有的信息,而不是某种注释性的文字,这使得代码更加整洁和利于维护。