常用注解
在开发过程中,我们可以经常看到一些内置的注解:
@Override :用于校验该方法是否是重载方法,如果不是重载方法,而且还是使用这个注解则会报错。
@Deprecated :用于过时的用法,如果继续使用,编译器会给出警告
@SuppressWarnings :用于指示编译器忽略注解中声明的警告
@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) public @interface CaseInfo { boolean ios() default false; boolean android() default false; boolean ci() default false; String summary() default ""; String description() default ""; String author() default ""; }
RetentionPolicy是一个枚举类型,共有三种枚举值
(1)CLASS:此注解的缺省行为,表明在程序运行期间,注解可以被编译器保存在类文件中,但不会被虚拟机保留。
(2)RUNTIME:表明在程序运行期间,既可以被编译器保存在类文件中,也被虚拟机保留,所以注解的内容可以通过反射机制读取
(3)SOURCE:注解会被编译器丢弃
其中ElementType是一个枚举类型,并且表明@Target注解拥有的是枚举类型的数组,可以被指定多个值。
(1)TYPE:允许作用在类,接口或者枚举声明上
(2)FIELD:允许作用在属性字段上
(3)METHOD:允许作用在方法上
(4)PARAMETER:允许作用在参数上
(5)CONSTRUCTOR:允许作用在构造器上
(6)LOCAL_VARIABLE:允许作用在本地变量上
(7)ANNOTATION_TYPE:允许作用在注解类型上
(8)PACKAGE:允许作用在包上
JDK1.8之后,新增TYPE_PARAMETER和TYPE_USE两个属性
(9)TYPE_PARAMETER:允许作用在类型参数上
(10)TYPE_USE:允许作用在使用类型的地方上
3,@Documented 定义注解可以包含在javadoc中
4,@Inherited:表明注解可以被子类集成使用