5

如何将 .java 文件加载到 CompilationUnit 中?例如,假设我当前的项目中有一个 A.java 文件。我想将它加载到 CompilationUnit 中,然后将其传递给 ASTParser。仅将其作为纯文本加载不是一个选项,因为在这种情况下,我似乎不会在 AST 中获得绑定信息。

4

1 回答 1

9

jdt您可以使用和eclipse core库加载项目。

使用以下代码,您可以加载工作区中的所有项目。

IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRoot root = workspace.getRoot();
// Get all projects in the workspace
IProject[] projects = root.getProjects();

然后你可以得到包,然后是java文件。

IPackageFragment[] packages = JavaCore.create(project).getPackageFragments();
IPackageFragment mypackage = packages.get(0); // implement your own logic to select package
ICompilationUnit unit = mypackage.getCompilationUnits();

然后你可以使用这个 ICompilationUnit 对象来获取 CompilationUnit

ASTParser parser = ASTParser.newParser(AST.JLS3); 
parser.setKind(ASTParser.K_COMPILATION_UNIT);
parser.setSource(unit);
parser.setResolveBindings(true);
CompilationUnit cUnit = parser.createAST(null);

这个 CompilationUnit 对象可以传递给 ASTParser。

于 2012-06-23T09:17:30.350 回答