注解工具-AnnotationUtil

介绍

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

使用

方法介绍

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

例子:
我们定义一个注解:

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

给需要的类加上注解:

  1. @AnnotationForTest("测试")
  2. public static class ClassWithAnnotation{
  3. }

获取注解中的值:

  1. // value为"测试"
  2. 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