我有这个简单的代码:
@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
所以我有两个问题:
- 为什么 Lombok
@Builder
与这个构造函数不兼容? - 考虑到我同时需要构建器和构造函数,我该如何编译代码?
原文由 IKo 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以添加
@AllArgsConstructor
注释,因为(引用@Andrew Tobilko)
或者将属性设置为
@Builder
:@Builder(toBuilder = true)
这为您提供了复制构造函数的功能。