get方法的身體在我的AbstractProcessor
我能夠得到一些註解一個類的所有方法,我已經創建了:如何從ExecutableElement
List<? extends Element> allElements = processingEnv.getElementUtils().getAllMembers((TypeElement) bean);
List<ExecutableElement> methods = ElementFilter.methodsIn(allElements);
是有可能獲得該方法的身體/ ExecutableElement
? API似乎只處理簽名和修飾符。
我大概可以用這個答案的一些變化:https://stackoverflow.com/a/34568708/6095334,訪問類從專有* **。孫包,如com.sun.tools.javac.tree.JCTree$MethodTree
:
MethodTree methodTree = trees.getTree(executableElement);
其中trees
是com.sun.source.util.Trees
集的一個實例AbstractProcessor的init()方法如下:trees = Trees.instance(processingEnv);
但是這些類帶有警告:這不是任何受支持的API的一部分。如果您編寫依賴於此的代碼,則需要您自擔風險。此代碼及其內部接口如有更改或刪除,恕不另行通知。
我希望能夠從更一般的註解處理框架內訪問註解的方法體。