如何检索com.sun.source.tree。* TypeTree的javax.lang.model.type.TypeMirror?

时间:2019-07-02 11:23:59

标签: java annotation-processing java-annotations

我想在编译期间分析方法主体,并可能对其进行较小的修改。我使用了 com.sun.source.util.Trees.getTree(ExecutableElement) TreeVisitor 。不幸的是, TreeVisitor.visit * Type(...)方法不提供完整的类型路径(例如,访问者返回的 java.util.List 只是 >列表)。

我发现的唯一合理的选择是 Trees.getTypeMirror(TreePath) Trees.getPath(CompilationUnitTree,Tree)。不出所料,它不适用于当前编译单元之外定义的类型(我不知道如何访问包含 java.util.List 定义的编译单元)。

我也考虑了导入分析,但是它不能解决通配符导入的问题。

我还阅读了关于问题How do I find the type declaration of an identifier using the Java Tree Compiler API?的回复 这似乎有点类似于我的问题,但是,代码部分缺少很多方法定义。

0 个答案:

没有答案