龙目岛过载塞特

时间:2019-10-15 06:24:07

标签: java lombok

我们可以像这样使用lombok生成二传手:

@Data                    //or @Setter
public class Test {  
    int a;
}

例如,我还想要一个带String的重载setter:

public void setA(String aStr){
    //parseInt and set 'a'
}

但是当我添加此重载方法时,lombok认为我已手动添加了一个setter,因此它选择不添加一个自身。

显然,它仅查看方法名称,而不查看参数。

有没有一种方法可以强制它添加普通的(以int作为参数)设置器?
还是唯一的方法是自己添加该普通设置器(当然使用IDE设置器生成器)?我有很多领域和很多课程。

2 个答案:

答案 0 :(得分:5)

在我的重载方法上添加@Tolerate注释解决了该问题。

Documentation

  

放置任何方法或构造函数以使lombok假装它不   存在,即生成一种方法,否则该方法将被跳过   可能的冲突。

不过,自2014年以来一直处于试验阶段。

答案 1 :(得分:1)

文档指出"No method is generated if any method already exists with the same name (case insensitive) and same parameter count."

您已经描述了这种情况。相反,您应该使用新名称

定义其他自定义setter方法。
  

setAFromString(String aStr)