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 に答える