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

时间:2016-04-14 11:55:22

标签: java lombok

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

@Setter
private Date date;

它将生成:

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

我还想添加一个setter,其中input是格式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。

1 个答案:

答案 0 :(得分:3)

来自doc

  

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

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

@Setter
private Date date;

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