注解工具-AnnotationUtil

注解工具-AnnotationUtil

介绍

封装了注解获取等方法的工具类。

使用

方法介绍

  1. 注解获取相关方法:
  • getAnnotations 获取指定类、方法、字段、构造等上的注解列表
  • getAnnotation 获取指定类型注解
  • getAnnotationValue 获取指定注解属性的值

例子:

我们定义一个注解:

// Retention注解决定MyAnnotation注解的生命周期
@Retention(RetentionPolicy.RUNTIME)
// Target注解决定MyAnnotation注解可以加在哪些成分上,如加在类身上,或者属性身上,或者方法身上等成分
@Target({ ElementType.METHOD, ElementType.TYPE })
public @interface AnnotationForTest {
	
	/**
	 * 注解的默认属性值
	 * 
	 * @return 属性值
	 */
	String value();
}

给需要的类加上注解:

@AnnotationForTest("测试")
public static class ClassWithAnnotation{

}

获取注解中的值:

// value为"测试"
Object value = AnnotationUtil.getAnnotationValue(ClassWithAnnotation.class, AnnotationForTest.class);
  1. 注解属性获取相关方法:
  • getRetentionPolicy 获取注解类的保留时间,可选值 SOURCE(源码时),CLASS(编译时),RUNTIME(运行时),默认为 CLASS

  • getTargetType 获取注解类可以用来修饰哪些程序元素,如 TYPE, METHOD, CONSTRUCTOR, FIELD, PARAMETER 等

  • isDocumented 是否会保存到 Javadoc 文档中

  • isInherited 是否可以被继承,默认为 false

更多方法见API文档:

https://apidoc.gitee.com/loolly/hutool/cn/hutool/core/annotation/AnnotationUtil.html