我们可以使用lombok这样生成二传手:
@Data //or @Setter
public class Test {
int a;
}
例如,我还想要一个带String的重载setter:
public void setA(String aStr){
//parseInt and set 'a'
}
但是当我添加此重载方法时,lombok认为我已手动添加了一个setter,因此它选择不添加一个自身。
显然,它仅查看方法名称,而不查看参数。
有没有一种方法可以强制它添加普通的(以int
作为参数的)设置器?还是唯一的方法是自己添加该普通设置器(当然使用IDE设置器生成器)?我有很多领域和很多课程。
文档指出"No method is generated if any method already exists with the same name (case insensitive) and same parameter count."
。
您已经描述了这种情况。相反,您应该定义另一个自定义setter方法,并使用新名称,例如
setAFromString(String aStr)
在我的重载方法上添加@Tolerate
注释解决了该问题。
@Tolerate
的文档:
放置任何方法或构造函数以使lombok假装它没有存在,即生成一种方法,否则该方法将被跳过可能的冲突。
虽然是实验性的。