Java 8 的 Lombok 问题

Lombok issues with Java 8

我刚刚升级到 Intellij idea 14 和 Java 8,并且我想将我的项目也升级到 Java 版本 8,以开始使用一些新功能。但是在正确配置 Intellij 以使用 Java 8 之后,我仍然遇到 Lombok 的问题。看起来 Java 8 和 lombok 之间存在冲突,因为现在我的 @Getter@Setter 注释不再起作用了。

lombok的版本是1.10.8。有什么建议吗?

简答:

Lombok 支持 Java 8,并且从 1.12.2 版本开始支持。


长答案

Lombok 支持 Java 8,并且根据 changelog:

从版本 1.12.2(2013 年 10 月 10 日)开始支持

PLATFORM: Initial JDK8 support, without affecting existing support for JDK6 and 7. Issue #451. While lombok will now work on JDK8 / javac8, and netbeans 7.4 and up, lombok does not (yet) support new language features introduced with java8, such as lambda expressions. Support for these features will be added in a future version.

此后进一步 Java 8 支持已实施:

  • v1.12.6(2014 年 3 月 6 日)

    PLATFORM: Initial JDK8 support for eclipse's alpha support in kepler. Issue #597

  • v1.14.0 "Branching Cobra"(2014 年 5 月 27 日)

    BUGFIX: Usage of @SneakyThrows with a javac from JDK8 with -target 1.8 would result in a post compiler error. Issue #655
    BUGFIX: Major work on improving support for JDK8, both for javac and eclipse.

  • v1.14.6(2014 年 9 月 2 日)

    BUGFIX: Usage of val would break starting with JDK8 release 1.8.0_20. Issue #731

换句话说,最新版本的 Lombok 应该能够很好地与 Java 8 一起工作,并且从版本 1.12.2 开始,没有新语言功能的 Java 8 代码应该可以工作.


编辑:作为 Roel pointed out, there is currently (8th january 2015) an open bug 指定一项特定的 Lombok 功能 (val) 在 1.14.8 中停止工作。

此错误已于 2015 年 11 月 16 日关闭。