重载龙目岛 setter
Overload lombok setter
我们可以像这样使用lombok生成setter:
@Data //or @Setter
public class Test {
int a;
}
比如说我还想要一个重载的 setter 需要一个 String:
public void setA(String aStr){
//parseInt and set 'a'
}
但是当我添加这个重载方法时,lombok认为我手动添加了一个setter所以它选择不自己添加一个
显然它只查看方法名称而不查看参数。
有没有办法强制它添加法线(以 int
作为参数)setter?
或者唯一的方法是自己添加正常的 setter (当然使用 IDE setter 生成器)?我有很多字段和很多 类.
文档指出 "No method is generated if any method already exists with the same name (case insensitive) and same parameter count."
.
您描述的就是这种情况。相反,您应该使用
之类的新名称定义一个额外的自定义 setter 方法
setAFromString(String aStr)
在我的重载方法上添加 @Tolerate
注释解决了这个问题。
Put on any method or constructor to make lombok pretend it doesn't
exist, i.e., to generate a method which would otherwise be skipped due
to possible conflicts.
虽然自 2014 年以来一直处于试验阶段。
我们可以像这样使用lombok生成setter:
@Data //or @Setter
public class Test {
int a;
}
比如说我还想要一个重载的 setter 需要一个 String:
public void setA(String aStr){
//parseInt and set 'a'
}
但是当我添加这个重载方法时,lombok认为我手动添加了一个setter所以它选择不自己添加一个
显然它只查看方法名称而不查看参数。
有没有办法强制它添加法线(以 int
作为参数)setter?
或者唯一的方法是自己添加正常的 setter (当然使用 IDE setter 生成器)?我有很多字段和很多 类.
文档指出 "No method is generated if any method already exists with the same name (case insensitive) and same parameter count."
.
您描述的就是这种情况。相反,您应该使用
之类的新名称定义一个额外的自定义 setter 方法setAFromString(String aStr)
在我的重载方法上添加 @Tolerate
注释解决了这个问题。
Put on any method or constructor to make lombok pretend it doesn't exist, i.e., to generate a method which would otherwise be skipped due to possible conflicts.
虽然自 2014 年以来一直处于试验阶段。