如何解决不同的构造函数LOMBOK
我有一个看起来像这样的课:
@EqualsAndHashCode
@RequiredArgsConstructor
public class StatusUpdate {
@Getter
@Setter
private Long id;
@Getter
@Setter
@NonNull
private String text;
@Getter
@Setter
@NonNull
private Date added;
}
我想使用Lombok创建这两个构造函数:
public StatusUpdate(String text) {
this.text = text;
}
public StatusUpdate(String text,Date added) {
this.text = text;
this.added = added;
}
我尝试使用所有三个注释: @NoArgsConstructor @RequiredArgsConstructor @AllArgsConstructor
但是我不能用这些来做到这一点,我只有一个带有两个参数的构造函数,所以我只需要一个带有一个参数的构造函数。我读了这个主题:@SomeArgsConstructor,这是我需要的,但是由于它不存在,我想我应该手动创建一个我需要的arg构造函数,以及将由Lombok处理的其他构造函数,或者有没有更好的/仅使用Lombok的方法是否更优雅?
谢谢!
解决方法
是的,您应该自己添加它们。几年前,有already a discussion添加了@SomeArgsConstructor
注释,但是由于龙目岛团队从未添加过该注释,所以我认为他们不太可能这样做。
或者,如注释中所述,将构建器模式与@Builder注释一起使用。然后,您可以编写如下内容:StatusUpdate.builder().text("text").date(new Date()).build();
。
顺便说一句,如果您确实用@Getter
,@Setter
注释了所有字段,并在班级使用了@EqualsAndHashCode
和@RequiredArgsConstructor
,我认为{{ 3}}注释很适合此类。
在实体类中使用@Builder
批注,并手动构建对象。
User user = User.builder()
.username(signupDto.getUsername())
.email(signupDto.getEmail())
.password(encoder.encode(signupDto.getPassword()))
.roles(roles)
.build();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。