0

我正在编写一个工具来从 POJO 中生成 JSON 模式,并使用一些自定义注释使用更多数据来增强它。我在编译期间使用 AbstractProcessor 和 Gradle 运行 AnnotationProcessor。我遇到的最大问题是获取类中的字段列表(在本例中为 Element):

public class JsonSchemaProcessor extends AbstractProcessor {

    @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        roundEnv.getElementsAnnotatedWith(JsonSchema.class).stream().forEach(classElement ->
            classElement.getEnclosedElements().stream()
                .filter(e -> ElementKind.FIELD == e.getKind())
                .forEach(/* DO SOMETHING WITH IT */)
        );
    }
}

getEnclosedElements只返回直接定义的字段。例如,如果从另一个类继承的类我不能在我的列表中定义父类的字段。有什么建议可以找出所有领域,包括那些来自继承的领域?

4

0 回答 0