2015-11-06 52 views
0

這是我的代碼。 我正在做CompilationUnit有JDT - 如何從CompilationUnit獲得ICompilationUnit

ASTParser parser = ASTParser.newParser(AST.JLS8); 
parser.setResolveBindings(true); 
parser.setStatementsRecovery(true); 
parser.setBindingsRecovery(true); 
parser.setKind(ASTParser.K_COMPILATION_UNIT); 
parser.setEnvironment(getProjectJars(), getSrcPaths(), null, true); 

parser.setSource(IOUtils.toCharArray(new FileInputStream(MY_SRC_FILE))); 
parser.setUnitName(MY_SRC_FILE.getAbsolutePath()); 

CompilationUnit cu = (CompilationUnit) parser.createAST(null); 

如何從已經從源所做CompilationUnit得到ICompilationUnit?由於

回答

0

我找到了解決辦法:

IWorkspace workspace = ResourcesPlugin.getWorkspace(); 
IPath path = Path.fromOSString(source.getAbsolutePath()); 
IFile file = workspace.getRoot().getFileForLocation(path); 
ICompilationUnit compilationUnit = (ICompilationUnit) JavaCore.create(file); 
0

我想這和它的工作:

ICompilationUnit cu= (ICompilationUnit)compilationUnit.getJavaElement();