栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

VariableDeclarationFragment节点resolveBindind()在eclipse / jdt / ast中返回null

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

VariableDeclarationFragment节点resolveBindind()在eclipse / jdt / ast中返回null

发生这种情况的原因是来自setResolveBindings文档的以下内容:

绑定信息是从Java模型获得的。这意味着
编译单元必须相对于Java模型位于。
当源代码来自
setSource(ICompilationUnit)或setSource(IClassFile)时,这将自动发生。当
setSource(char [])提供源时,必须
通过使用setProject(IJavaProject)或
setEnvironment(String [],String [],String [],boolean)和单元名称
setUnitName()设置环境来显式地建立位置。字符串)。请注意,影响文档注释
检查的编译器选项也可能会影响是否为
文档注释内的节点解析了任何绑定。


这意味着您可以使用类似的东西(通过链接):

IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();IProject project = root.getProject("someJavaProject");project.open(null );IJavaProject javaProject = JavaCore.create(project);

and add the

setProject
call:

private static CompilationUnit createCompilationUnit(String sourceFile,        IJavaProject javaProject) {    String source = readWithStringBuilder(sourceFile);    ASTParser parser = ASTParser.newParser(AST.JLS3);     parser.setKind(ASTParser.K_COMPILATION_UNIT);    parser.setSource(source.toCharArray()); // set source    parser.setProject(javaProject);    parser.setResolveBindings(true); // we need bindings later on    return (CompilationUnit) parser.createAST(null ); // parse}

The second approach (without

setProject
):

private static CompilationUnit createCompilationUnit(String sourceFile,        String unitName) {    String source = readWithStringBuilder(sourceFile);    ASTParser parser = ASTParser.newParser(AST.JLS3);     parser.setKind(ASTParser.K_COMPILATION_UNIT);    parser.setSource(source.toCharArray()); // set source    String[] classpathEntries = ...;    String[] sourcepathEntries = ...;    parser.setEnvironment(classpathEntries, sourcepathEntries, null, true);    parser.setUnitName(unitName);    parser.setResolveBindings(true);    // optional    // parser.setBindingsRecovery(true);    return (CompilationUnit) parser.createAST(null ); // parse}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496428.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号