Java EclipseJDT:解析IClassFile的AST,无附加源代码
我想获取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
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