gyj2008
gyj2008
采纳率0%
2019-07-06 16:26

java 注解处理器(AbstractProcessor) 获取到 指定注解的属性值 javapoet 如何使用这个值生成类?

5

通过注解处理器 在编译期 获取指定注解的方法
根据方法获取方法上其他的注解及注解的属性和属性值

通过 javapoet 生成类 类生成方法 并把获取到的注解和注解的属性及属性值一并生成
在使用过程中 遇到如下问题 因为 获取到的注解的 属性值为 AnnotationValue 类型

javapoet 中 添加的注解代码为 AnnotationSpec.Builder(注解类).addMember(String name, String format, Object... args)

导致如下问题
如果注解的属性值是数组类型
生成 如:method(@AnnotationName(value="/"v1/",/v2"/"))
正确的应该是 method(@AnnotationName(value={"v1","v2"}))
导致生成的代码是不正确的
如果注解的属性值是其他类型 也存在在问题
请问 javapoet 在生成主角属性值的时候 如何处理AnnotationValue
即 如何能根据AnnotationValue
正确的处理 注解的属性值 能生成正确的代码 ?
如何能判断出AnnotatIonValue 对象对应的值类型是那种?
注解的属性值 包含 基础类型 注解 数组 等

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

相关推荐