注解分类
注解分为标准注解和元注解
标准注解
标准注解有以下几种:
@Override
:对覆盖超类中的方法进行标注,如果被标注的方法并没有实际覆盖超类中的方法,编译器会发错错误警告。@Deprecated
:对不鼓励使用或已过时的方法进行标注,当开发人员对这些被标注的方法进行调用时,会显示该方法已过时的提示信息。@SuppressWarnings
:选择性的取消特定代码段中的警告。@SafeVarargs
:JDK 7 新增的注解,用来声明使用了可变长度参数的方法,其在与泛型类一起使用时会出现类型安全问题。
元注解
元注解是用来标注注解的注解,在注解定义时使用。有以下几种:
@Targe
:标注所修饰的对象范围。@Inherited
:表示注解可以被继承。@Documented
:表示注解应该被JavaDoc工具记录。@Retention
:用来声明注解的保留策略。@Repeatable
:JDK 8 新增的注解,允许一个注解在同一声明类型(类、属性或方法)中多次使用。
下面重点介绍下@Targe
注解及@Retention
注解:
@Targe
注解
其中@Targe
注解的取值是一个ElementType
类型的数值。这里有以下几种取值,对应不用的对象范围。
ElementType.TYPE
:声明类、接口或枚举类型。ElementType.FIELD
:声明成员变量。ElementType.METHOD
:声明方法。ElementType.PARAMETER
:声明参数。ElementType.CONSTRUCTOR
:声明构造方法。ElementType.LOCAL_VARIABLE
:声明局部变量。ElementType.ANNOTATION_TYPE
:声明注解类型。ElementType.PACKAGE
:声明包。ElementType.TYPE_PARAMETER
:声明参数类型。ElementType.TYPE_USE
:使用类型。ElementType.MODULE
:声明模块。
@Retention
注解
@Retention