自定义注解TestAnnotation
package com.jyusun.origin.study.basic.注解;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/*** 自定义注解* <p>* 作用描述:为了解决某些问题,可以采取自定义注解的方式来处理*/@Documented@Retention(RetentionPolicy.RUNTIME)@Target( ElementType.FIELD)public @interface TestAnnotation {String value() default "测试注解";}
注解属性类型
| 属性类型 | 备注 |
|---|---|
| String | |
| 基本数据类型 | |
| Class | |
| Enum | |
| Annotation | 注解中可以引用其他注解作为属性类型 |
| 以上类型的1维数组 |
@Target
如果自定义注解不标记 @Target 注解,默认是允许标记在以下描述范围内的任何地方
| ElementType | 作用域 | 备注 |
|---|---|---|
| TYPE | 接口、类、枚举、注解 | |
| FIELD | 字段、枚举的常量 | |
| METHOD | 方法 | |
| PARAMETER | 方法参数 | |
| CONSTRUCTOR | 构造函数 | |
| LOCAL_VARIABLE | 局部变量 | |
| ANNOTATION_TYPE | 注解 | 注解可以用来修饰注解,是注解的注解,称为元注解 |
| PACKAGE | 包 |
示例:
@Target(ElementType.TYPE)@Target(ElementType.FIELD)@Target(ElementType.METHOD)@Target(ElementType.PARAMETER)@Target(ElementType.CONSTRUCTOR)@Target(ElementType.LOCAL_VARIABLE)@Target(ElementType.ANNOTATION_TYPE)@Target(ElementType.PACKAGE)
@Retention 注解的保留位置
Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,
这个枚举决定了Retention注解应该如何去保持,也可理解为Rentention 搭配 RententionPolicy使用。RetentionPolicy有3个值:CLASS RUNTIME SOURCE
按生命周期来划分可分为3类:
