Lombok中的Val在IntelliJ中产生“不兼容类型”错误,但仍然可以正常编译

Jez*_*zor 6 java intellij-idea lombok

我找到了这段代码:

Class<? extends Enum> enumClass = Class.forName(Charsets.class.getName())
                                       .asSubclass(Enum.class);
Run Code Online (Sandbox Code Playgroud)

我想使用龙目岛(Lombok)对其进行重构,但是发生了意外情况。当我将其更改为:

val enumClass = Class.forName(Charsets.class.getName())
                     .asSubclass(Enum.class);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

在此处输入图片说明

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

我不确定这是Lombok插件,IDE中的错误还是我做错了什么。Lombok是否应该能够轻松推断出变量的正确类型?

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

我正在使用最新的(当前)InteliiJ:

IntelliJ IDEA 2016.3

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

JRE:1.8.0_112-release-408-b2 amd64

JVM:JetBrains sro的OpenJDK 64位服务器VM

和龙目岛插件:

龙目岛插件

版本:0.13.16

mim*_*mim 5

Preferences > Plugins >安装最新版本的IntelliJ Lombok插件


Mic*_*fel 3

已确认可与IntelliJ IDEA 2018.1.1Lombok Plugin 0.17-2018.1配合使用