java - Eclipse 从 .java 文件创建 CompilationUnit

标签 java eclipse eclipse-jdt abstract-syntax-tree compilationunit

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

最佳答案

您可以使用 jdteclipse 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。

关于java - Eclipse 从 .java 文件创建 CompilationUnit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11166862/

相关文章:

java - 修改类型的签名

java - 使用 JDT 将注释附加到类

eclipse-plugin - 重写节点后注释行消失

java - 在数组中声明 52 个图像图标的最简单方法是什么

java.lang.IllegalArgumentException : Removing a detached instance of StudentSubject

java - 在 Javascript 文件中获取 EL,由 @ResourceDependency 加载

java - 如何修复 eclipse 插件中的错误版本?

java - 找不到带有 ADT 插件的 Eclipse 的 Android SDK

java - 浮点格式 : maximum precision but not fixed

java - Eclipse 中的 Spring 项目 - 404