Java 注释处理如何检查 VariableElement 是原始类型(int、float)还是对象 some class
Java Annotation Processing how to check if VariableElement is a primitive type(int, float) or an object some class
我有一个class
public class SomeClass {
@CustomAnnotation1
String stringProperty = "LALALA";
@CustomAnnotation1
int integerProperty;
@CustomAnnotation1
ClassObject classObject;
}
CustomAnnotation1 是我定义的自定义注释,可以放在任何字段上。假设 class ClassObject
类似于
public class ClassObject {
@CustomAnnotation1
public String someOtherString;
public String log;
}
我想要实现的目标 - 如果我的注释放在任何不是原始类型的字段上,我想访问该字段的所有字段class .
我的方法 - 获取所有用 CustomAnnotation1
注释的字段,遍历所有这些字段,如果它是非原始的,则获取其中的所有字段 class 和过程。
我试过的方法 - 我可以在我的 AbstractProcessor
class 中使用下面的代码获得所有用我的注释注释的元素。
Collection<? extends Element> annotatedElements = roundEnvironment.getElementsAnnotatedWith(CustomAnnotation1.class);
List<VariableElement> variableElements = ElementFilter.fieldsIn(annotatedElements);
问题 -
- 我对
VariableElement
class 进行了很多研究,但无法找到一种方法来检查该字段是否为原始字段。这能做到吗?
- 有没有更好的方法来实现这个?
VariableElement.asType().getKind().isPrimitive()
我有一个class
public class SomeClass {
@CustomAnnotation1
String stringProperty = "LALALA";
@CustomAnnotation1
int integerProperty;
@CustomAnnotation1
ClassObject classObject;
}
CustomAnnotation1 是我定义的自定义注释,可以放在任何字段上。假设 class ClassObject
类似于
public class ClassObject {
@CustomAnnotation1
public String someOtherString;
public String log;
}
我想要实现的目标 - 如果我的注释放在任何不是原始类型的字段上,我想访问该字段的所有字段class .
我的方法 - 获取所有用 CustomAnnotation1
注释的字段,遍历所有这些字段,如果它是非原始的,则获取其中的所有字段 class 和过程。
我试过的方法 - 我可以在我的 AbstractProcessor
class 中使用下面的代码获得所有用我的注释注释的元素。
Collection<? extends Element> annotatedElements = roundEnvironment.getElementsAnnotatedWith(CustomAnnotation1.class);
List<VariableElement> variableElements = ElementFilter.fieldsIn(annotatedElements);
问题 -
- 我对
VariableElement
class 进行了很多研究,但无法找到一种方法来检查该字段是否为原始字段。这能做到吗? - 有没有更好的方法来实现这个?
VariableElement.asType().getKind().isPrimitive()