gpt4 book ai didi

java - 为什么 Lombok @Builder 与此构造函数不兼容?

转载 作者:行者123 更新时间:2023-12-01 21:56:36 25 4
gpt4 key购买 nike

我有这个简单的代码:

@Data
@Builder
public class RegistrationInfo {

private String mail;
private String password;

public RegistrationInfo(RegistrationInfo registrationInfo) {
this.mail = registrationInfo.mail;
this.password = registrationInfo.password;
}
}

首先,我只使用 @Builder Lombok 注释,一切都很好。但我添加了构造函数,代码不再编译。错误是:

Error:(2, 1) java: constructor RegistrationInfo in class com.user.RegistrationInfo cannot be applied to given types;
required: com.user.RegistrationInfo
found: java.lang.String,java.lang.String
reason: actual and formal argument lists differ in length

所以我有两个问题:

  1. 为什么 Lombok @Builder 与此构造函数不兼容?
  2. 考虑到我同时需要构建器和构造函数,如何编译代码?

最佳答案

您可以添加 @AllArgsConstructor 注释,因为

@Builder generates an all-args constructor if there are no otherconstructors defined.

(引用@Andrew Tobilko)

或者将属性设置为@Builder:@Builder(toBuilder = true)这为您提供了复制构造函数的功能。

@Builder(toBuilder = true)
class Foo {
// fields, etc
}

Foo foo = getReferenceToFooInstance();
Foo copy = foo.toBuilder().build();

关于java - 为什么 Lombok @Builder 与此构造函数不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51122400/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com