注解作为元数据提供约束,大部分注解不会影响代码的执行,但也有一部分注解可用于这一目的。
一、注解的作用:
1、生成文档(@Document)
2、编译检查(@Override)
3、编译时动态处理
4、运行时动态处理
二、注解的分类
1、java自带的标准注解
2、元注解(用来修饰注解的注解)
3、自定义注解
1、元注解
jdk1.5版本内置了三种标准的注解:(1.5版本开始加入注解)
@Override,只能标注方法,表示该方法覆盖父类中的方法
@Deprecated,被注解的内容不建议被使用
@SuppressWarnings,关闭编辑器警告信息。(eclipse快捷键Ctrl+1)
Java还提供了4中注解,专门负责新注解的创建:(作用在其他注解的注解(或者说元注解))
@Target:
表示该注解可以用于什么地方,可能的ElementType参数有:
CONSTRUCTOR:作用构造函数
FIELD:字段、枚举常量
LOCAL_VARIABLE:作用于局部变量
METHOD:方法
PACKAGE:包
PARAMETER:方法的参数
TYPE:类、接口、枚举、注解
ANNOTATION_TYPE:作用于注解
@Retention
表示需要在什么级别保存该注解信息。可选的RetentionPolicy参数包括:
SOURCE:注解将被编译器丢弃
CLASS:注解在class文件中可用,但会被VM丢弃
RUNTIME:VM将在运行期间保留注解,因此可以通过反射机制读取注解的信息--一般会选择这种
@Document
将注解包含在Javadoc中
@Inherited
允许子类继承父类中的注解
java1.7后额外添加了 3 个注解::
@SafeVarargs
- Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。@FunctionalInterface
- Java 8 开始支持,标识一个匿名函数或函数式接口。@Repeatable
- Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
2、自定义注解
Java中自定义注解和创建一个接口相似,自定义注解的格式是以@interface为标志的。
1、自定义校验注解
https://blog.csdn.net/Y_hahaha/article/details/105975862