`
jamaica1982
  • 浏览: 29751 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Eclipse JDT中TypeDeclaration的resolveBinding()

阅读更多
今天在用JDT的DOM API分析Java源代码时遇到如下问题:

当用户在JDT Editor里面编辑代码时,如果需要JDT进行参数推荐,则会触发我们自己的代码。而此时,不知何故,我们的ASTVisitor的代码中无法resolve一个TypeDeclaration。即调用TypeDeclaration.resolveBinding()的返回值为null。进而导致一个NPE。

后来老杨等人找到这么一段API文档(是ASTParser.setResolveBindings()的):

...
When source is supplied by setSource(char[]), the location must be established explicitly by setting an environment using setProject(IJavaProject) or setEnvironment(String[], String[], String[], boolean) and a unit name setUnitName(String). Note that the compiler options that affect doc comment checking may also affect whether any bindings are resolved for nodes within doc comments.
...

然后根据此文档的指示,老杨等人使用了如下代码,就解决了:

ASTParser parser = ASTParser.newParser(AST.JLS3);
parser.setSource(srcString.toCharArray());
parser.setProject(icu.getJavaProject());
IPath path = icu.getPath();
parser.setUnitName(path.toString());
		
parser.setResolveBindings(true);
parser.setStatementsRecovery(true);
completeCU = (CompilationUnit) parser.createAST(null);


特此记录一下
分享到:
评论
1 楼 u011710489 2017-11-27  
你好,请问icu是什么对象,能代码截图全一点么

相关推荐

    eclipse JDT的使用

    5. **代码导航和搜索**:JDT提供了代码导航工具,如Open Type、Open Resource和Open Declaration等,帮助开发者快速定位到类、方法或变量。同时,全局搜索功能(Search功能)则可以查找项目中任何位置的代码元素。 ...

    Eclipse JDT AST使用方法(word)

    例如,TypeDeclaration节点(表示类声明)可能包含一个SimpleName节点(表示类名),这个SimpleName节点在TypeDeclaration中通过Name属性关联。ASTNode提供了两个关键方法来处理这些属性: 1. `...

    Drools报错:The Eclipse JDT Core jar is not in the classpath

    1. **确保Eclipse JDT Core库在类路径中**:你需要将eclipse-jdt-core.jar添加到项目的类路径中,这可以通过修改项目构建配置(如Maven或Gradle的pom.xml或build.gradle文件)来实现。 2. **使用Maven或Gradle管理...

    基于Eclipse-JDT生成Java源代码的AST并可视化.zip

    for (TypeDeclaration type : cu.types()) { // 对每个类型声明进行操作... } ``` 为了可视化AST,可以使用Eclipse插件如ASTView。首先,你需要在Eclipse Marketplace中搜索并安装这个插件。安装完成后,在Eclipse...

    eclipse.jdt.core, jdt/核心项目库( eclipse jdt core ).zip

    eclipse.jdt.core, jdt/核心项目库( eclipse jdt core ) JDT内核这是 Eclipse 开发工具的Java的核心部分。 它包含对编译和使用Java代码的非用户界面支持,包括:可以独立运行或者作为 Eclipse IDE的一部分的增量或者...

    eclipse中jdt相关jar包

    Class not found: org.eclipse.jdt.core.JDTCompilerAdapter。 解决方法: 拷贝下面这些jar包到ant_home/lib org.eclipse.jdt.compiler.tool_1.0.100.v_972_R35x.jar org.eclipse.jdt.core_3.5.2.v_981_R35x.jar org...

    eclipse.jdt

    【eclipse.jdt】是Eclipse集成开发环境(IDE)中的一个重要组成部分,全称为Eclipse Java Development Tools。它是专门用于Java编程的插件,提供了强大的Java语言支持,使得开发者可以在Eclipse环境中高效地进行Java...

    eclipse-JDT-3.3.1.zip

    在标题中提到的“eclipse-JDT-3.3.1.zip”是一个Eclipse JDT的特定版本,即3.3.1版本的归档文件。这个版本发布于2007年,作为Eclipse 3.3(Europa)的一部分,它包含了用于开发Java应用程序的各种工具和API。 ...

    Eclipse jdt 2.0 plugin developer guide

    根据给定的文件信息,我们可以总结出以下关于Eclipse JDT 2.0插件开发者指南的相关知识点: ### 一、概述 Eclipse JDT(Java Development Tools)2.0 插件开发者指南是一份由OTI(Open Tooling Initiative)编写的...

    org.eclipse.jdt

    org.eclipse.jdt.* 的目录和文件 全部拷贝到 flexbuilder 的plugin (若为myEclipse则是将myEclipse下eclipse\plugins) flashbuilder也一样 ----下面是在FlexBuilder中配置VSS ------- 1. 首先绑定项目到...

    eclipse.jdt.doc.user.3.1.pdf.zip

    《Eclipse JDT 用户文档3.1版》是针对Eclipse集成开发环境(IDE)Java开发工具包(JDT)的一份详细用户指南。这份PDF文档涵盖了如何在Eclipse平台上进行Java开发的各种技术和最佳实践,适用于3.1版本。Eclipse RCP...

    org.eclipse.jdt.core_3.6.1.v_A68_R36x_jar

    1.下载Eclipse plugin 补丁文件 org.eclipse.jdt.core_3.6.1.v_A68_R36x.jar: http://meiyoudao.download.csdn.net/ 2.将解压缩后的jar包 放到Eclipse的目录中的Plugin下面, 3.Android开发时代码提示卡死的问题...

    org.eclipse.jdt.core_3.2.0.v_671

    这个“org.eclipse.jdt.core_3.2.0.v_671.jar”文件是Eclipse JDT核心功能的实现,包含了所有上述服务的实现和库,是Eclipse IDE中进行Java开发不可或缺的部分。用户可以通过导入这个JAR文件到自己的Eclipse环境中,...

    org.eclipse.jdt.core_3.6.0.v_A58.jar

    《深入解析Eclipse插件:org.eclipse.jdt.core_3.6.0.v_A58.jar》 在软件开发领域,Eclipse作为一个强大的集成开发环境(IDE),深受广大Java开发者喜爱。Eclipse的可扩展性主要体现在其丰富的插件体系上,其中"org...

    tomcat源码需要的jar包(org.eclipse.jdt.core_3.8.3)

    ant-apache-log4j.jar ... (如果你没有,但是装了ecplise,可在 \eclipse\plugins中找到) [尤其是org.eclipse.jdt 这个jar包,不好找,网上下的几个不行。。。最后灵机一动,去ecplise插件里面找,找到了]

    Eclipse用户开发手册[the user guide of Eclipse JDT from ibm]

    ### Eclipse JDT 用户指南知识点概览 #### 一、引言 本指南旨在为用户提供一个全面的介绍,帮助用户了解如何使用Eclipse JDT(Java Development Tools)进行高效的Java开发。文档由IBM提供,覆盖了从环境搭建到高级...

    eclipse.jdt.core:修改后的Eclipse JDT核心以解析存储库中的Java源代码

    在"修改后的Eclipse JDT核心以解析存储库中的Java源代码"的场景下,我们可以理解为这个版本的JDT已经被优化或扩展,以更好地处理来自代码仓库(如Git、SVN等)的源码。 1. **源代码解析**:Eclipse JDT的核心功能之...

    eclipse JDT核心

    - **org.eclipse.jdt.core.search**:实现了在工作空间中的Java模型元素中进行搜索的功能,可以按指定条件查找Java元素。 - **org.eclipse.jdt.core.util**:包含了一系列工具类,用于处理.class文件和Java模型...

Global site tag (gtag.js) - Google Analytics