4

我有一堂课

public class SomeClass {

    @CustomAnnotation1
    String stringProperty = "LALALA";

    @CustomAnnotation1
    int integerProperty;

    @CustomAnnotation1
    ClassObject classObject;
}

CustomAnnotation1 是我定义的自定义注释,可以放在任何字段上。假设类ClassObject是这样的

public class ClassObject {

    @CustomAnnotation1
    public String someOtherString;

    public String log;
}

我想要实现的- 如果我的注释放在任何不是原始类型的字段上,我想访问该类的所有字段。

我的方法- 获取所有用 注释的字段CustomAnnotation1,遍历所有字段,如果它是非原始的,则获取该类和进程中的所有字段。

我已经尝试过- 我能够使用我的AbstractProcessor类中的以下代码来获取所有用我的注释进行注释的元素。

Collection<? extends Element> annotatedElements = roundEnvironment.getElementsAnnotatedWith(CustomAnnotation1.class);
List<VariableElement> variableElements = ElementFilter.fieldsIn(annotatedElements);

问题-

  • 我对这个VariableElement类进行了很多研究,但无法找到一种方法来检查该字段是否是原始的。这可以做到吗?
  • 有没有更好的方法来实现这一目标?
4

1 回答 1

4

VariableElement.asType().getKind().isPrimitive()

于 2018-11-28T18:18:34.220 回答