注解的学习
注解
元注解
-
元注解的作用就是负责注解其他注解,java定义了4个标准的meta-annotation类型,他们被用来提供对其他annotation类型作说明。
-
这些类型和它们所支持的类在java.lang.annotation包中可以找到
(@Target,@Retention,@Documented,@Inherited)
- @Target:用于描述注解的适用范围(即:被描述的注解可以用在什么地方)
- @Retention:表示需要在什么级别保存该注释信息,用于描述注解的生命周期
- (SOURCE < CLASS < RUNTIME)
- (就是定义在SOURCE处,只有源码处有效,若定义在RUNTIME处,则包含前2者且在运行时有效)
- @Documented:说明该注解将被包含在javadoc中
- @Inherited:说明子类可以继承父类中的该注解
自定义注解
-
使用@interface自定义注解时,自动挤成了java.lang.annotation.Annotation接口
-
分析:
- @interface用来声明一个注解,格式:public @interface 注解名
- 其中的每一个方法实际上是声明了一个配置参数
- 方法的名称就是参数的名称( **注解的参数:参数类型 + 参数名(); ** )
- 返回值类型就是参数的类型(返回值只能是基本类型,Class,String,enum)
- 可以通过default来声明参数的默认值( 如果默认值为-1,代表不存在。)
- 如果只有一个参数成员,一般参数名为value(只有默认值是value才能省略)
- 注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值