在Lombok中的Val在IntelliJ中产生“不兼容类型”错误,但仍然编译良好

时间:2016-12-10 11:25:32

标签: java intellij-idea lombok

我找到了这段代码:

Class<? extends Enum> enumClass = Class.forName(Charsets.class.getName())
                                       .asSubclass(Enum.class);

我想用Lombok重构它,但发生了意想不到的事情。当我把它改为:

val enumClass = Class.forName(Charsets.class.getName())
                     .asSubclass(Enum.class);

我收到了这个错误:

enter image description here

令人惊讶的是,代码编译得很好,并且使用它的测试通过了。

我不确定它是否是Lombok插件,IDE中的错误或者我做错了什么。龙目岛不应该能够轻易地推断出变量的正确类型吗?

我的问题是:我可以安全地使用该代码还是应该恢复原始代码?

我正在使用最新的(此时)InteliiJ:

  

IntelliJ IDEA 2016.3

     

Build#IU-163.7743.44,建于2016年11月17日

     

JRE:1.8.0_112-release-408-b2 amd64

     

JVM:JetBrains s.r.o的OpenJDK 64位服务器VM

和Lombok插件:

  

Lombok插件

     

版本:0.13.16

2 个答案:

答案 0 :(得分:1)

确认使用 IntelliJ IDEA 2018.1.1 Lombok插件0.17-2018.1

答案 1 :(得分:0)

Preferences > Plugins > IntelliJ

安装最新版本的 Lombok 插件