Как получить тело метода из ExecutableElement

В моемAbstractProcessor Я могу получить все методы из класса с аннотацией, которую я создал:

List<? extends Element> allElements = processingEnv.getElementUtils().getAllMembers((TypeElement) bean);
List<ExecutableElement> methods = ElementFilter.methodsIn(allElements);

Возможно ли получить тело метода /ExecutableElement? Похоже, API имеет дело только с сигнатурой и модификаторами.

Я мог бы, вероятно, использовать некоторые варианты этого ответа:https://stackoverflow.com/a/34568708/6095334, чтобы получить доступ к классам из проприетарного пакета * .sun. **, такого какcom.sun.tools.javac.tree.JCTree$MethodTree:

MethodTree methodTree = trees.getTree(executableElement);

гдеtrees является примеромcom.sun.source.util.Trees установить в методе init () AbstractProcessor следующим образом:trees = Trees.instance(processingEnv);
Но эти классы идут с предупреждением:Это НЕ является частью какого-либо поддерживаемого API. Если вы пишете код, который зависит от этого, вы делаете это на свой страх и риск. Этот код и его внутренние интерфейсы могут быть изменены или удалены без предварительного уведомления.

Я надеюсь, что было возможно получить доступ к телу аннотированного метода из более общей среды обработки аннотаций.

Ответы на вопрос(1)

Ваш ответ на вопрос