【问题标题】:capture of ? using Lombok builder捕获?使用龙目岛建造者
【发布时间】:2020-02-19 16:27:56
【问题描述】:

我有这门课

public class Hostel extends Hotel<Book> {
}

还有这个

@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(of = { "id" })
@SuperBuilder(toBuilder = true)
@JsonInclude(NON_NULL)
public class Hotel<T>  {
...
}

但是当我这样做时

Hostel hostel = Hostel.builder().build();

我得到了这个编译错误

 Required type: Hostel
Provided:
capture of ?

【问题讨论】:

  • 尝试使用构建器注释Hostel 类。如果您想查看 lombok 的输出,请阅读 this SO post。它将帮助您找出问题所在。
  • 您也必须在子类上添加@SuperBuilder 注释...检查这里lombok docs

标签: java builder lombok intellij-lombok-plugin


【解决方案1】:

您在 Hostel 上没有任何注释。 Hostel.builder()真的Hotel.builder()的伪装。

所以任务必须是

final Hotel<?> build = Hostel.builder().build();

或者更准确地说(使静态方法受制于继承是 IMO 的错误)

final Hotel<?> build = Hotel.builder().build(); 

您可能想为子类添加一些 Lombok 注释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 2016-06-20
    • 2021-10-02
    • 2021-03-27
    • 2015-10-18
    • 1970-01-01
    相关资源
    最近更新 更多