我有一节课是这样的:
@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来做?
谢谢!
2条答案
按热度按时间o4hqfura1#
是的,你应该自己加上去。几年前,已经有一个讨论添加
@SomeArgsConstructor
注解,但由于Lombok山团队从来没有添加过注解,我认为他们不太可能会这样做。或者,如注解中所述,将生成器模式与@builder注解一起使用。然后你可以写这样的东西:
StatusUpdate.builder().text("text").date(new Date()).build();
.顺便说一句,如果你用
@Getter
,@Setter
使用@EqualsAndHashCode
以及@RequiredArgsConstructor
在类级别上,我认为@data注解非常适合这个类。xmakbtuz2#
使用
@Builder
使用实体类进行注解并手动构建对象。