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



我使用@Setter生成Setter,但我也想为同一字段添加一个不同数据类型的Setter作为输入。

@Setter
private Date date;

它将生成:

public void setDate(Date date) {
  this.date = date;
}

我还想再添加一个setter,其中输入的格式是String。

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

通过使用@Setter并添加setDate(String date)Setter,lombok无法自动生成setDate(date date)Setter。有没有方法可以使用Date作为输入自动生成setter,并添加一个明确接受String作为输入的setter。

来自文档:

如果已经存在具有相同名称(不区分大小写)和相同参数计数的任何方法,则不会生成任何方法。例如,如果已经有一个方法getFoo(String…x),即使在技术上可以生成该方法,也不会生成getFoo)。存在此警告是为了防止混淆。如果由于这个原因跳过了方法的生成,则会发出警告。变量计数为0到N个参数。您可以用@lombok.experimental.Tolerate标记任何方法以对lombok隐藏它们。

我的建议是使用类似(或使用实验注释)的东西:

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

最新更新