Java EclipseJDT:解析IClassFile的AST,无附加源代码

Java EclipseJDT:解析IClassFile的AST,无附加源代码,java,eclipse,eclipse-jdt,Java,Eclipse,Eclipse Jdt,我想获取IClassFile的源代码并将其解析为AST。我以为你就是这样做的: protected static CompilationUnit parse(IClassFile classFile) { ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setKind(ASTParser.K_COMPILATION_UNIT); parser.setProject(classFile.getJavaProj

我想获取IClassFile的源代码并将其解析为AST。我以为你就是这样做的:

protected static CompilationUnit parse(IClassFile classFile) {
    ASTParser parser = ASTParser.newParser(AST.JLS3);
    parser.setKind(ASTParser.K_COMPILATION_UNIT);
    parser.setProject(classFile.getJavaProject());

    try {

        String source = classFile.getSource();
        parser.setSource(source.toCharArray());
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    parser.setResolveBindings(true);
    return (CompilationUnit) parser.createAST(null); // parse
}
但是
字符串
源为
null
:(

Eclipse说,当我想查看相应的类时,我必须附加源代码,但在大纲中我可以看到正确的类文件及其所有方法等。因此,必须有一种方法来解析IClassFile的AST,而不附加源代码(或者Eclipse是否以编程方式附加源代码?)


如何获取此IClassFile的ASTNode?

您如何检索
IClassFile
?我想您使用的是旧版本。newParser(AST.JLS3);表示java版本3。您应该使用core manipulation v1.5.0 v20130605