今天研究的项目里涉及到了注解
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) public @interface ExcelField
所以深入了解了下
@Target
描述注解标记可以用于哪里,取值有:
ElementType.PACKAGE 注解作用于包
ElementType.TYPE 注解作用于类型(类,接口,注解,枚举)
ElementType.ANNOTATION_TYPE 注解作用于注解
ElementType.CONSTRUCTOR 注解作用于构造方法
ElementType.METHOD 注解作用于方法
ElementType.PARAMETER 注解作用于方法参数
ElementType.FIELD 注解作用于属性
ElementType.LOCAL_VARIABLE 注解作用于局部变量
@Retention
描述注解的生命周期,取值有:
RetentionPolicy.SOURCE 源码中保留,编译期可以处理
RetentionPolicy.CLASS Class文件中保留,Class加载时可以处理
RetentionPolicy.RUNTIME 运行时保留,运行中可以处理
默认RetentionPolicy.CLASS 值
注解还可以使用标记
@Inherited
标记注解,使用@Inherited修饰的注解作用于一个类,该注解是否可被继承。
@Documented
描述注解可以文档化,是一个标记注解。
在生成javadoc的时候,是不包含注释的,但是如果注解被@Documented修饰,则生成的文档就包含该注解。