Java基础--Java中的注解(超级详细)
Java中的注解
注解的概述
-
从JDK5.0开始,Java增加了对元数据(metaData)的支持,也就是Annotation(注解) Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载、运行时被读取,并执行相应的处理。
常见的Annotation示例
示例一:生成文档相关的注解
其中@param,@return,@exception这三个标记都是只用于方法的
@param的格式要求:@param形参名 形参类型 形参说明
@return 的格式要求:@return返回值类型 返回值说明
@exception的格式要求:@exception 异常类型 异常说明
@param 和 @exception可以并列多个
示例二:在编译时进行格式检查(JDK内置的三个基本注解)
-
@Override:限定重写父类方法,该注解只能用于方法 @Deprecated:用于表示所修饰的元素(类、方法等)已过时,通常所修饰的结果危险或存在更好的选择 @SuppressWarnings:一直编译器警告
如何自定义注解,参照@SuppressWarning
定义新的Annotation类型使用 @interface 关键字
自定义注解自动继承了java.long.annotation.Annotation接口
Annotation的成员变量的在Annotation定义中以无参数方法的形式来声明,其方法名和返回值定义了该成员的名字和类型,我们称为配置参数,类型只能是八种基本数据类型、String类型、Class类型、enum类型、Annotation类型、以上所有类型的数组
可以在定义Annotation的成员变量时为其指定初始值,指定成员变量的初始值可食用default关键字
如果只有一个参数成员,建议使用参数名为value
如果定义的注解含有配置参数,那么使用时必须指定参数值,除非它有默认值,格式是:“参数名=参数值”,如果只有一个参数成员,且名称为value,可以省略value=
自定义注解通常都会指明两个元注解:Retention、Target
JDK中的四种元注解
JDK中的元注解用于修饰其他Annotation定义
JDK5.0提供了4个标准的meta-annotation类型,分别是:
-
Retention:只能那个用于修饰一个Annotation定义,用于指定该Annotatino的生命周期,@Retention包含一个RetentionPolicy类型的成员变量,使用@Retention时必须为该value成员变量指定值 Target:用于修饰Annotation能用于修饰哪些程序元素 Document:用于指定该元注解修饰的注解类将别javadoc工具提取成文档,默认javadoc是不包括注解的 Inherited:被它修饰的Annotation将具有继承性。