我相信前段时间,有更新IDEA到2020.2版本的同学,在安装Lombok的过程中,肯定遇到与Lombok无法兼容的问题,并且报错:
Caused by: com.intellij.psi.PsiInvalidElementAccessException: Element: class de.plushnikov.intellij.plugin.psi.LombokLightMethodBuilder #JAVA because: psi is outdated
后来,我去Github上面查看了一下,已有不少开发者也遇到此问题,并提交了issue,见图:
作者@mplushnikov给出答复是IDEA2020.2不兼容 Lombok,这到底是怎么回事呢?
因为目前的官方版本已经修复了该问题,我便翻了一下IDEA的官方博客,发现最近的更新说明中有所提及。
打开这个YT链接,你便会发现这个bug是Lombok的作者提的,并且还与Jetbrains官方进行了激烈讨论,见下图:
下面是评论,见下图
这里,给大家翻一下评论
@Wojciech Musiał
我不得不说,用户在哭诉... 我们无法正常使用这款工具。而且我认为没有人会指责第三方插件开发人员,反而会认为Jetbrains官方没有对Lombok进行原生支持。@Anna Kozlova您可以回答一下这个问题:IntelliJ是否会对Lombok提供原生支持?
@Matthias Kurz
+1,请让IntelliJ对 Lombok提供原生支持。
@Peter Gromov(JB官方人员)
@Michail Plushnikov(Lombok作者) 那是因为有一些来自 Lombok 插件的类的无效成员变量,很有可能是这些成员变量被缓存到某个地方,导致从 isValid 返回 false,而没有缓存被失效。我建议调试检查一下,为什么它们会变为失效,有哪些缓存被涉及到。
经过两位大佬一番技术问题的讨论,@Peter Gromov(JB官方人员)最终发现确实是平台问题,并对Lombok作者表达了歉意。
@Michail Plushnikov(Lombok作者)谢谢!这确实是一个平台问题,我将对其进行修复,对此我感到非常抱歉:(
这段讨论挺有意思的,感兴趣的同学可以通过下方的参考链接进行查看^_^
目前,官方已在2020.2.1中进行了修复,彻底解决了该问题~
如果你目前还是不兼容,请更新IDEA到最新版本,同时更新Lombok插件到最新版本。
# 参考链接
- https://github.com/mplushnikov/lombok-intellij-plugin/issues/829
- https://blog.jetbrains.com/idea/2020/08/intellij-idea-2020-2-1-is-available
- https://youtrack.jetbrains.com/issue/IDEA-248146