Java注解

放在Java源码的类、方法、字段、参数前的一种特殊“注释”
第一类是由编译器使用的注解,例如:
@Override:让编译器检查该方法是否正确地实现了覆写;
@SuppressWarnings:告诉编译器忽略此处代码产生的警告。
这类注解不会被编译进入.class文件,它们在编译后就被编译器扔掉了。
第二类是由工具处理.class文件使用的注解,比如有些工具会在加载class的时候,对class做动态修改,实现一些特殊的功能。
第三类是在程序运行期能够读取的注解,它们在加载后一直存在于JVM中,这也是最常用的注解

定义一个注解时,还可以定义配置参数。配置参数可以包括:
所有基本类型;String;枚举类型;基本类型、String以及枚举的数组。
因为配置参数必须是常量,所以,上述限制保证了注解在定义时就已经确定了每个参数的值。
注解的配置参数可以有默认值,缺少某个配置参数时将使用默认值。
此外,大部分注解会有一个名为value的配置参数,对此参数赋值,可以只写常量,相当于省略了value参数。
如果只写注解,相当于全部使用默认值

public @interface 注解名称 {
注解参数类型 注解参数() default 默认值;
注解参数类型 注解参数() default 默认值;
注解参数类型 注解参数() default 默认值;
}

原文地址:https://www.cnblogs.com/frlblog/p/13087730.html