gpt4 book ai didi

Java注解处理器——字段的字段

转载 作者:行者123 更新时间:2023-12-02 10:59:11 26 4
gpt4 key购买 nike

我正在编写自定义注释处理器,并且一直在寻找一种访问带注释类字段的方法。所以我会有两个类

public class InnerClass {
private final String innerField = "String";
}

@CustomAnnotation
public class OuterClass {
private final InnerClass inner = new InnerClass();
}

我正在获取带注释的类OuterClass,并且我可以通过getEnheldElements访问其字段。但是是否可以以某种方式访问​​ InnerClass.innerField ?我看到一些注释看起来像是从内部类获取字段,但我找不到任何获取它的方法。

最佳答案

您可以直接从Elements.getTypeElement获取TypeElement

TypeElement te = elements.getTypeElement("yourpackage.InnerClass");
ElementFilter.fieldsIn(te.getEnclosedElements()).forEach(System.out::println);

如果您不知道InnerClass名称并且需要从OuterClass获取类型。您可以使用 Types.asElementTypeMirror 获取 Element

Element outer = ...; // Get your outer class element
VariableElement field = ElementFilter.fieldsIn(outer.getEnclosedElements()).stream().findFirst().get();
Element inner = types.asElement(field.asType());
ElementFilter.fieldsIn(inner.getEnclosedElements()).forEach(System.out::println);

关于Java注解处理器——字段的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51473874/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com