【问题标题】:Image() is already defined in class during Maven build using LombokImage() 在使用 Lombok 构建 Maven 期间已在类中定义
【发布时间】:2018-07-06 04:18:23
【问题描述】:

使用 Maven 构建时,下面的代码导致编译错误 (Image() is already defined in class) 与 @NoArgsConstructor 一致。

import lombok.Data;
import lombok.NoArgsConstructor;

// tag::code[]
@Data
@NoArgsConstructor
public class Image {

    private int id;
    private String name;

    public Image(int id, String name) {
        this.id = id;
        this.name = name;
    }
} 

是什么导致了这个问题,我该如何解决?

编辑:Lombok 版本是 1.16.22。

【问题讨论】:

  • 请用 Lombok 的版本更新问题。如果是 1.16.22,请更新到 1.18.0 - 参见例如#1703 on GitHub.
  • Tomasz 现在已将此作为答案发布。答案不应直接发布在问题中,因此我将对其进行编辑和删除。请随意将 Tomasz 的答案标记为已接受。

标签: java maven lombok


【解决方案1】:

由于 Lombok v1.16.22 中的错误,在类上同时指定 @Data@NoArgsConstructor 会触发错误。这已在主要版本 v1.18.0 中得到修复。

Lombok changelog中,我们在v1.18.0下找到以下内容:

BUGFIX:如果这会破坏代码,请不要生成私有的无参数构造函数。 Issue #1703, Issue #1704, Issue #1712

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 2018-09-20
    • 2018-11-01
    • 2012-12-13
    • 2020-10-04
    • 2012-06-05
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多