小编Her*_*ian的帖子

如何从ExecutableElement获取方法主体

在我的帮助下,AbstractProcessor我可以从带有某些注释的类中获取所有方法,我创建了:

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

是否可以获取方法的主体ExecutableElement?该API似乎只处理签名和修饰符。

我可能会使用以下答案的一些变体:https : //stackoverflow.com/a/34568708/6095334,以从专有* .sun。**包访问类,例如com.sun.tools.javac.tree.JCTree$MethodTree

MethodTree methodTree = trees.getTree(executableElement);
Run Code Online (Sandbox Code Playgroud)

这样,AbstractProcessor的init()方法treescom.sun.source.util.Treesset 的实例在哪里:trees = Trees.instance(processingEnv);
但是这些类带有警告:这不是任何受支持的API的一部分。如果编写依赖于此的代码,则后果自负。该代码及其内部接口如有更改或删除,恕不另行通知。

我希望可以从更通用的注释处理框架中访问带注释的方法的主体。

java methods annotation-processing

5
推荐指数
0
解决办法
1014
查看次数

标签 统计

annotation-processing ×1

java ×1

methods ×1