gpt4 book ai didi

java - 为什么 Lombok @Wither 不起作用

转载 作者:行者123 更新时间:2023-12-02 01:14:34 25 4
gpt4 key购买 nike

我正在使用 Lombok 1.18.8:

compileOnly 'org.projectlombok:lombok:1.18.8'

这是我使用 @Wither 的简单类(class):

 @Wither
public class User {
private int a;
}

但是当我尝试在另一个类中调用它时, withA() 方法没有出现:

    class test {
User user = new User().withA(1); // withA is red
}

我的代码有什么问题吗?

UPD:其他 Lombok 注释有效。例如@Setter、Getter、@NoArgsConstructor

最佳答案

Lombok 1.18.8:@Wither

如果您查看 withA() 的实际实现,您会注意到它依赖于全参数构造函数。为了使您的示例正常工作,请尝试添加它以及无参数构造函数:

@Wither
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int a;
}

delombok 的版本是:

public class User {
private int a;

public User withA(int a) {
return this.a == a ? this : new User(a);
}

public User(int a) {
this.a = a;
}

public User() {
}
}

注意:这已使用 Lombok 1.18.8、IntelliJ IDEA 和 Lombok 插件进行了测试。

Lombok 1.18.10:@With

@With 已升级,@Wither 已弃用:只需将 lombok.experimental.Wither 替换为 lombok.With 即可。其他一切与 1.18.8 类似:

@With
@AllArgsConstructor
@NoArgsConstructor
public class User {
private int a;
}

关于java - 为什么 Lombok @Wither 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58877639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com