当前位置: 首页 > 面试题库 >

为什么IntelliJ需要Lombok插件?

子车飞文
2023-03-14
问题内容

据我了解,Lombok使用Java的注释处理器来生成其他方法

与Maven 3.5它完全无需添加任何额外的配置,只需添加dependecy龙目岛,并把一些注解一样@Getter@Setter

但是,如果我在IntelliJ IDEA
2018.2中打开此项目,则生成的吸气剂/设置剂的所有用法都会突出显示为错误。我启用了注释处理,我试图在IntelliJ中构建项目或在Maven中构建,然后在IntelliJ中使用,但是它仍然需要Lombok插件来避免错误。

是某种错误吗?工作流程错误?也许Lombok不仅在使用注释处理器,而且还在使用其他我不知道的东西,这就是为什么IntelliJ +
javac无法弄清楚如何处理它的原因?javac本身会编译这些文件而不会出错,这将很奇怪

我知道有很多问题“使用Lombok时出错”,以及诸如“使用插件”之类的答案。
我不是问我是否应该使用插件,而是为什么我应该使用它,为什么IntelliJ不能在没有javac的情况下使用插件来处理它


问题答案:

IntelliJ的代码分析引擎不使用javac或运行注释处理器。相反,IntelliJ使用自己的Java解析器和参考解析逻辑,并构建自己的代码模型。Lombok插件扩展了代码模型,以提供有关由Lombok注释处理器生成的声明的信息。



 类似资料:
  • 在我的Java项目中,我使用Lombok工具生成getter和setter<它与Maven完美配合,无需任何配置。 为什么我需要为龙目岛配置Eclipse<我已经知道如何配置Eclipse:https://projectlombok.org/download.html 为什么我必须在我的eclipse.ini中添加以下行?

  • 互联网是超文本标记语言(HTML)页面的集合,它们彼此链接以形成概念性信息网络。随着时间的推移,静态资源数量增加,图像等更丰富的项目开始成为Web结构的一部分。 高级服务器技术允许动态服务器页面 - 其内容基于查询生成的页面。 很快,需要拥有更多动态网页才能获得动态超文本标记语言(DHTML)。一切都归功于JavaScript。在接下来的几年中,我们看到了跨帧通信,试图避免页面重新加载,然后在帧内

  • 当前信息时代,哪里都是应用程序。这些应用程序们不仅仅是运行人们工作场所的工具 - 它们现在正在经营人们的生活。 对即时响应的需求,完美的行为和更多的功能是前所未有的。 而且,当然,人们期望应用程序在不同类型的设备上运行平稳,特别是在移动设备上。 应用程序执行的速度与它所做的一样重要。 NGINX的核心功能,例如其具有高性能HTTP和反向代理服务器的大规模可扩展事件驱动架构,访问和带宽控制以及与各种

  • 开发人员和运营工程师是两个不同的组织团队,如果发现这两个团队在错误的轨道上协作,则表明需要DevOps。以下是两个团队经常出现的一些问题: 在DevOps之前,开发和运营团队完全孤立。 测试和部署是在设计构建之后完成的独立活动。因此,他们比实际构建周期消耗更多时间。 在不使用DevOps的情况下,团队成员将大量时间花在测试,部署和设计上,而不是构建项目。 手动代码部署会导致生产中出现人为错误 编码

  • IntelliJ IDEA 2020.1(终极版)中的Lombok插件与此IDE实例不兼容。我不知道是我的机器出了问题还是每个人的机器出了问题: 它能修好吗?还是暂时的问题?

  • 问题内容: 根据PreparedStatement.setNull的Java文档,“注意:您必须指定参数的SQL类型”。该方法需要列的SQL类型的原因是什么? 我注意到传递java.sql.Types.VARCHAR还可用于非varchar列。是否存在不适合使用VARCHAR的方案(某些列类型或某些数据库提供程序)? 谢谢。 问题答案: 根据PreparedStatement.setNull的Ja