Eclipse ASTParser只解析一个java函数?

时间:2010-08-11 19:49:45

标签: java eclipse parsing

我只想知道使用org.eclipse.jdt.core.dom.ASTParser是否可以解析一个java函数?

这就是我尝试的方法:我将函数的代码传递给ASTParser.setSource(char [] s),如下所示:

    ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setKind(ASTParser.K_COMPILATION_UNIT);
    parser.setSource(unit); //set source
    CompilationUnit cu = (CompilationUnit) parser.createAST(null /* IProgressMonitor */); // parse
    List list = node.types();
    for(int i = 0; i < list.size(); i++){
       ASTNode typeNode = (ASTNode) list.get(i);
       System.out.println(ASTNode.nodeClassForType(typeNode.getNodeType()));
    }

但是我看到类型列表中没有任何内容(size = 0)。

请建议。 谢谢。 法希姆

1 个答案:

答案 0 :(得分:1)

只是一个小错字,在List list = node.types();行中它应该是List list = cu.types();。您无法仅传递功能。它需要是有效的Java编译单元,因此它必须具有类型定义。确保用类包装函数。任何课程。它应该工作得很好。

如果它不起作用,请记住您可以要求cu.getProblems()并查看失败的位置。