首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

即使使用K_COMPILATION_UNIT和BindingRecovery,Eclipse AST方法resolveTypeBinding也始终为null

在Eclipse中,AST(Abstract Syntax Tree)是一种用于表示源代码结构的数据结构。AST可以通过解析源代码生成,并且可以用于进行代码分析、重构、代码生成等操作。

在给定的问答内容中,提到了使用K_COMPILATION_UNIT和BindingRecovery,这些可能是自定义的类或方法,没有具体的定义和背景信息。因此,我无法提供与这些特定类和方法相关的详细答案。

然而,根据给定的问题,我们可以讨论一般情况下AST的使用和resolveTypeBinding方法的行为。

  1. AST(Abstract Syntax Tree):AST是一种用于表示源代码结构的树状数据结构。它由各种节点组成,每个节点代表源代码中的一个构造,例如类、方法、变量等。AST可以通过解析源代码生成,并且可以用于进行代码分析、重构、代码生成等操作。
  2. resolveTypeBinding方法:resolveTypeBinding方法是AST中的一个方法,用于解析类型绑定。它可以用于获取AST节点中的类型信息,例如变量的类型、方法的返回类型等。resolveTypeBinding方法返回一个ITypeBinding对象,该对象包含有关类型的详细信息。

然而,即使使用K_COMPILATION_UNIT和BindingRecovery,如果resolveTypeBinding方法始终返回null,可能有以下几个可能的原因:

  • 代码中存在语法错误:如果代码中存在语法错误,AST解析过程可能无法正确地解析类型绑定。在这种情况下,建议检查代码中的语法错误,并进行修复。
  • 缺少必要的依赖:如果resolveTypeBinding方法依赖于某些外部库或插件,但缺少了这些依赖,可能导致无法正确解析类型绑定。在这种情况下,建议检查项目的依赖配置,并确保所有必要的依赖都已正确添加。
  • AST节点类型不支持类型绑定解析:某些AST节点类型可能不支持resolveTypeBinding方法,因此无法解析类型绑定。在这种情况下,建议查阅Eclipse AST文档,了解哪些节点类型支持resolveTypeBinding方法,并确保在适当的节点上使用该方法。

总结起来,如果即使使用K_COMPILATION_UNIT和BindingRecovery,resolveTypeBinding方法始终返回null,可能是由于代码中存在语法错误、缺少必要的依赖或AST节点类型不支持类型绑定解析等原因。在解决此问题时,建议检查代码的语法正确性、项目的依赖配置,并查阅Eclipse AST文档以了解resolveTypeBinding方法的使用限制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Lombok介绍及使用方法

当我们编写代码并保存后,编辑器会自动编译源码文件,在这个过程中,源码先被转化为 AST。 然后,Lombok 插件解析 AST 是否存在 Lombok 的注解。...如果存在则修改 AST ,使其生成注解对应的代码。 最终将修改的 AST 解析并生成字节码文件。 三、安装插件 编辑器安装 Lombok 插件。...双击 jar 包会弹出一个安装界面,点击界面的“Specify location…” 安装选择 Eclipse 的安装路径(精确到 eclipse.exe)。...四、使用 使用 Lombok 的方法非常简单,就是在类上或者成员变量上添加注解即可。 为了能使用注解,我们还需要在项目中引入 lombok 的 jar 包。...@Data: 自动所有字段添加@ToString, @EqualsAndHashCode, @Getter方法非final字段添加@Setter,@RequiredArgsConstructor

71820

Java效率工具之Lombok

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下:javac对源代码进行分析,生成一棵抽象语法树(AST)javac编译过程中调用实现了JSR 269的Lombok程序此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点javac使用修改后的抽象语法树(AST)生成字节码文件4) Lombok...注解的使用:POJO类常用注解:@Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

56720

IDEA中用好Lombok,撸码效率至少提升5倍

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用 POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

57430

IDEA中用好Lombok,撸码效率至少提升5倍

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用 POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

43460

IDEA 中用好 Lombok,撸码效率至少提升5倍

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用 POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

43420

如何用好 IDEA ,Java 撸码效率至少提升 5 倍?

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用 POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...img @EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

53310

IDEA中用好Lombok,撸码效率至少提升5倍

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用 POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

68230

原来IDEA还有这么骚包的插件!!!

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用: POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

77220

原来IDEA还有这么骚包的插件!!!

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用: POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

1.2K40

Java效率工具Lombok使用及原理

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用: POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode:作用于类,覆盖默认的equalshashCode @NonNull:主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

53810

Java 效率工具之 Lombok

Eclipse的Lombok插件安装可以自行百度,比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for...在使用javac的过程中,它产生作用的具体流程如下: javac对源代码进行分析,生成一棵抽象语法树(AST) javac编译过程中调用实现了JSR 269的Lombok程序 此时Lombok就对第一步骤得到的...AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件 4) Lombok...注解的使用: POJO类常用注解: @Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。...@EqualsAndHashCode作用于类,覆盖默认的equalshashCode @NonNull主要作用于成员变量参数中,标识不能为空,否则抛出空指针异常。 ?

64920

Lombok快速入门

(AST),然后修改该语法树(AST),增加gettersetter方法定义的相应树节点 4.javac使用修改后的抽象语法树(Modified AST)进行分析生成(Analyze and Generate...IDEA,所以先以IDEA例做演示。...---- Eclipse安装Lombok插件: 1.安装该插件时最好关闭Eclipse,然后在官网中下载lombok.jar,下载地址 2.将 lombok.jar 放在eclipse安装目录下, eclipse.ini...默认情况下,会使用所有非瞬态(non-transient)非静态(non-static)字段来生成equalshascode方法可以使用exclude或of属性。...例如:Jackson、Json 序列化 使用Lombok虽然能够省去手动创建settergetter方法等繁琐事情,但是却降低了源代码文件的可读性完整性,减低了阅读源代码的舒适度 使用@Slf4j还是

70410

如何编写一个面试时能拿的出手的开源项目?

在面试时,可以在简历显眼的位置给出开源项目名称Git地址。面试官一般都会去查看,这是程序员实力的最好见证,是自己Coding能力的最好见证。...所以Eclipse AST View整个项目的实现相对简单。...把Eclipse AST View项目的源代码导入到Eclipse中,这样就可以通过阅读、调试的方式来学习这个插件了,然后参考这个插件来写我自己的Javac AST View插件。...2.3 编写项目框架 编写的插件中主要使用了树插件,JFace树控件提供了查看器Viewer。...(3)控件,用来显示内容,这里用到的树控件TreeViewer (4)查看器 模型元素以及内容提供者标签提供者需要自己编写,控件查看器不需要开发者自己编写。

85121

Lombok介绍、使用方法总结

出现的神奇就是在源码中没有gettersetter方法,但是在编译生成的字节码文件中有gettersetter方法。这样就省去了手动重建这些代码的麻烦,使代码看起来更简洁些。...AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加gettersetter方法定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件,...属性做修改时,简化了维护这些属性所生成的getter/setter方法等 缺点: 不支持多种参数构造器的重载 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性完整性...因为在使用时,eclipse或IntelliJ IDEA都需要安装相应的插件,在编译器编译时通过操作AST(抽象语法树)改变字节码生成,变向的就是说它在改变java语法。...我现在非常坚信一条理念,任何编程语言或插件,都仅仅只是工具而已,即使工具再强大在于用的人,就如同小米加步枪照样能赢飞机大炮的道理一样。

1.4K71

业界代码安全分析软件介绍

测试源码地址: NA 比对结果展示 coverity 测试方法通过coverity提交构建任务,在五分钟的轮循环后顺利执行检查。...显示效果如下图所示,在安全视图检查出来的问题为0,在质量类检查出5个null类型引用的问题。 经过简单调优,步骤去除配置错误的—security(只对c、c++项目有效)。...分析设计思路理念 静态代码检测工具涉及的基本流程:对于一些特征较为明显的可以使用正则规则来直接进行匹配出,比如硬编码密码、错误的配置等,这方面使用rasp项目的规则可以用,正则的效率会是问题...在广泛的AST使用案例的客户名单中,特别是在需要多种测试技术的情况下。 它以提供创新产品和服务而闻名。拥有最完整的SDLC集成之一 例如,流行的IDECI / CD工具提供开箱即用的集成。...Fortify继续开发创新的自动化基于机器学习的功能,以支持DevOps,例如使用安全助手在Eclipse IDE中进行实时分析。

2.1K20

【侠客行】Lombok深度解析

2.5 @EqualsAndHashCode 默认情况下,会使用所有非静态(non-static)非瞬态(non-transient)属性来生成equalshasCode,能通过exclude注解来排除一些属性...AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加gettersetter方法定义的相应树节点 javac使用修改后的抽象语法树(AST)生成字节码文件,...属性做修改时,简化了维护这些属性所生成的getter/setter方法等 缺点: 不支持多种参数构造器的重载 虽然省去了手动创建getter/setter方法的麻烦,但大大降低了源代码的可读性完整性...因为在使用时,eclipse或IntelliJ IDEA都需要安装相应的插件,在编译器编译时通过操作AST(抽象语法树)改变字节码生成,变向的就是说它在改变java语法。...我现在非常坚信一条理念,任何编程语言或插件,都仅仅只是工具而已,即使工具再强大在于人怎么去使用,就如同小米加步枪照样能赢飞机大炮的道理一样。

58230
领券