gpt4 book ai didi

Java 编译器树 API : NPE

转载 作者:行者123 更新时间:2023-11-30 09:38:04 26 4
gpt4 key购买 nike

我正在尝试使用另一个 treepathscanner 访问方法主体,但我不知道要传递哪个参数,因为我总是在 TreePath 构造函数中得到一个 NPE。

@Override
public Object visitMethod(MethodTree node, Trees p) {
...
node.getBody().accept(new MethodVisitor(m, repository), node.getBody());
...
}


public class MethodVisitor extends TreePathScanner<Object, BlockTree> {...}

异常(exception):

An annotation processor threw an uncaught exception.
Consult the following stack trace for details.
java.lang.NullPointerException
at com.sun.source.util.TreePath.<init>(TreePath.java:94)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:65)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.visitBlock(TreeScanner.java:158)
at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:764)
at cz.cvut.kbss.odpa.parser.visitor.OdpaVisitor.visitMethod(OdpaVisitor.java:93)
at cz.cvut.kbss.odpa.parser.visitor.OdpaVisitor.visitMethod(OdpaVisitor.java:29)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:676)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:67)
...

感谢您的帮助。

最佳答案

如果有人需要它,正确的调用方式是:

new MethodVisitor(m, repository).scan(p.getPath(compilationUnitTree, node), node.getBody());

关于Java 编译器树 API : NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10281918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com