IntelliJ IDEa 2018.2 使用 JDK 11 将 var lambda 参数突出显示为错误
IntelliJ IDEa 2018.2 highlights var lambda parameter as error using JDK 11
在 Oracle JDK11 和最新(截至目前)可用版本的 IntelliJ IDEa (IntelliJ IDEA 2018.2.4) 上测试。项目语言水平是 Java 11.
代码
public static void main(String[] args) {
System.out.println(List.of("AAA", "BBB", "CCC")
.stream()
.map((@NonNull var s) -> s.toLowerCase())
.collect(Collectors.toList()));
}
输出
[aaa, bbb, ccc]
一切都编译并运行良好,但编辑器显示编译时错误:
JEP-323(Lambda 参数的局部变量语法)还不受支持还是存在错误?
如果出现此错误,很可能是安装了 Lombok 插件。这是一个 Lombok 插件检查错误。
禁用以下检查将解决问题:
文件 |设置 |编辑|可能的错误 | Lombok注解检查
也可以隐式禁止检查。
Lombok-intellij-plugin 项目中的问题已创建:
https://github.com/mplushnikov/lombok-intellij-plugin/issues/531
您应该关闭 Lombok 注释检查,直到他们解决问题。
在 Oracle JDK11 和最新(截至目前)可用版本的 IntelliJ IDEa (IntelliJ IDEA 2018.2.4) 上测试。项目语言水平是 Java 11.
代码
public static void main(String[] args) {
System.out.println(List.of("AAA", "BBB", "CCC")
.stream()
.map((@NonNull var s) -> s.toLowerCase())
.collect(Collectors.toList()));
}
输出
[aaa, bbb, ccc]
一切都编译并运行良好,但编辑器显示编译时错误:
JEP-323(Lambda 参数的局部变量语法)还不受支持还是存在错误?
如果出现此错误,很可能是安装了 Lombok 插件。这是一个 Lombok 插件检查错误。
禁用以下检查将解决问题:
文件 |设置 |编辑|可能的错误 | Lombok注解检查
也可以隐式禁止检查。
Lombok-intellij-plugin 项目中的问题已创建:
https://github.com/mplushnikov/lombok-intellij-plugin/issues/531
您应该关闭 Lombok 注释检查,直到他们解决问题。