Lombok超载设置器

问题描述 投票:2回答:2

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

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

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

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

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

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

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

java lombok
2个回答
0
投票

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

您已经描述了这种情况。相反,您应该定义另一个自定义setter方法,并使用新名称,例如

setAFromString(String aStr)


0
投票

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

@Tolerate的文档:

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

虽然是实验性的。

© www.soinside.com 2019 - 2024. All rights reserved.