关于注解的理解

---恢复内容开始---

1.JDK自带的注解

2.框架的注解

3自定义主机

1.JDK自带的注解有很多 如@ override  继承时重写方法   

2.用到比较多的是Spring框架的注解 

前两块后续补充

3、自定义注解

用 @interface 修饰的称之为注解(annotation)

修饰注解的注解称之为元注解  如

@Target 用于标记注释的位置

@Target({ElementType.FIELD,ElementType.TYPE})

Target这个元注解是标识MyAnnotation可以加在那些元素上
ElementType.Type:接口和类
ElementType.FIELD 属性
ElementType.METHOD 方法
ElementType.PARAMETER属性
ElementType.CONSTRUCTOR 构造函数
ElementType.LOCAL_VARIABLE 局部变量
ElementType.ANNOTATION_TYPE 注解
ElementType.PACKAGE包

@Retention 用于设置此注解的生命周期

@Retention 是决定注解的存活周期的
RetentionPolicy.RUNTIME 是从源文件 到编译文件 到字节码文件一直存活对的 javac不会去掉改注解 类加载器也不会去掉该注解
RetentionPolicy.CLASS 存在于源文件和编译后的文件 在类加载器加载的时候会去掉注解
RetentionPolicy.SOURCE 只存在于源文件 该注解是给编译器看的 编译器处理完过后 就会将注解去掉 如Override

注解中可设置属性

基本数据类型 数组  枚举类型   属性可以设置缺省值   value属性 可以省略value和等号 

/**
*定义基本属性 可以定义缺省值 若没有缺省值 在定义注解的时候 就要赋值
*value属性 可以再增加注解时省略value字段 的赋值
*/
String value()default "123";
String color()default "bule";
/**数组类型的属性*/
int[] arrayAttr() default {1,2,3};
/**枚举类型的属性*/
EumTrafficLamp lamp() default EumTrafficLamp.RED;

 

---恢复内容结束---

原文地址:https://www.cnblogs.com/xiatc/p/9318774.html