java - Lombok 中的 Val 在 IntelliJ 中产生 "incompatible types"错误,但仍然可以正常编译

标签 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 中的错误还是我做错了什么。 Lombok 不应该能够轻松推断出变量的正确类型吗?

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

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

IntelliJ IDEA 2016.3

Build #IU-163.7743.44, built on November 17, 2016

JRE: 1.8.0_112-release-408-b2 amd64

JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

和 Lombok 插件:

Lombok Plugin

Version: 0.13.16

最佳答案

Preferences > Plugins >IntelliJ

安装最新版本的 Lombok 插件

关于java - Lombok 中的 Val 在 IntelliJ 中产生 "incompatible types"错误,但仍然可以正常编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41074990/

相关文章:

intellij-idea - 如何禁用 Intellij 中的 Alt + [F, E, V, ...] 菜单快捷方式?

java - IntelliJ : How to enable JPAQL validation without persistence. XML?

java - 找不到符号错误 : Lombok 1. 18.6 不适用于 Gradle 5.2.1、JDK 10

java - 如何在 Swagger 中注释对象响应数组

java - 找到非托管 pom.xml 文件(无法在 IntelliJ 中导入 Maven 项目)

java - 在服务中构建连接池并在其他服务中使用它们

compiler-construction - 使用 `lombok` 注释和 Java JDK 8 在内存中编译 Java 类

java - 谷歌容易出错的java编译器 - maven构建期间的错误: java. lang.NoSuchFieldError:pid

java - 如何更改聚焦 JComboBox 的突出显示颜色

java - SQL IN 与 java 中的 DynamoDb 等效