Java 使用lombok为字段添加两个不同的setter

Java 使用lombok为字段添加两个不同的setter,java,lombok,Java,Lombok,我正在使用@Setter生成Setter,但我还想为同一字段添加一个以上的Setter,并将不同的数据类型作为输入 @Setter private Date date; 它将产生: public void setDate(Date date) { this.date = date; } 我还想再添加一个setter,其中输入为格式字符串 public void setDate(String date) { this.date = Date.valueOf(date); } 通过使用

我正在使用@Setter生成Setter,但我还想为同一字段添加一个以上的Setter,并将不同的数据类型作为输入

@Setter
private Date date;
它将产生:

public void setDate(Date date) {
  this.date = date;
}
我还想再添加一个setter,其中输入为格式字符串

public void setDate(String date) {
  this.date = Date.valueOf(date);
}
通过使用@Setter并添加setDateString日期Setter,lombok无法自动生成setDateDate日期Setter。是否有方法可以使用日期作为输入自动生成setter,并添加一个明确接受字符串作为输入的setter。

来自:

@Setter
private Date date;
如果已经存在任何名称不区分大小写且参数计数相同的方法,则不会生成任何方法。例如,如果已经有一个方法getFooString,则不会生成getFoo。。。即使从技术上讲,该方法是可行的。此警告旨在防止混淆。如果因此跳过方法的生成,则会发出警告。Varargs计数为0到N个参数。您可以使用@lombok.experimental.Tolerate标记任何方法,以对lombok隐藏它们

我的建议是使用类似或实验性注释:

@Setter
private Date date;

public void setDateFromString(String date) {
  this.date = Date.valueOf(date);
}

在这种情况下,我必须跳过此字段的Setter。我在课堂上使用Setter。我必须明确地添加这两个setter。现在IDE在管理getter/setter方面做得非常好。我会用你的IDE手动生成它们。用字符串作为输入将@Tolerate添加到setter对我来说很有效:放置任何方法或构造函数,使lombok假装它不存在,即生成一个方法,否则会由于可能的冲突而被跳过。