据我所知,Lombok使用Java的Annotation Processors来生成其他方法.
与Maven 3.5它完全无需添加任何额外的配置,只需添加dependecy龙目岛,并把一些注解一样@Getter
,@Setter
.
但是,如果我在IntelliJ IDEA 2018.2中打开此项目,则生成的getter/setter的所有用法都会突出显示为错误.我打开了Annotation Processing,我尝试在IntelliJ中构建项目或在Maven中构建然后在IntelliJ中使用,但它仍然需要Lombok插件来避免错误.
这是某种虫子吗?工作流程出错?或者也许龙目岛不仅使用注释处理器,还有其他一些我不知道的东西,这就是为什么IntelliJ + javac无法弄清楚如何处理它?这很奇怪,因为javac本身编译这些文件没有错误
我知道有很多问题"我在使用Lombok时遇到错误"和"使用插件"之类的答案.我不是在问我是否应该使用插件,但为什么我应该使用它,为什么IntelliJ无法在没有插件的情况下处理它而javac呢
IntelliJ的代码分析引擎不使用javac或运行注释处理器.相反,IntelliJ使用自己的Java解析器和参考解析逻辑,并构建自己的代码模型.Lombok插件扩展了代码模型,以提供有关Lombok注释处理器生成的声明的信息.