如何为lombok Builder生成getter



我有以下定义:

@Value
@Builder(toBuilder = true)
public class MyEntity {
String name;
}

当试图在构建器(例如MyEntityBuilder.getName()(上使用getter时,IDEA声明它"是";无法解析方法";。此外,IDEA不会自动完成它。

唯一可用的方法(除了build()(是setter:MyEntityBuilder name(String name);

有没有一种方法可以在lombok生成的构建器上生成getter?谢谢

使用龙目1.8.16

根据Lombok文档或源代码,似乎没有开箱即用的选项。

如果你想检查构建器的内容,你能做的最好的事情似乎就是构建对象并从那里检查字段。

DwB的回答表明构建器模式不需要也不使用getter。

您可以为Lombok构建器值设置getter,但我认为它不会很有用。您可以通过以下方式自定义生成器:

@Value
@Builder(toBuilder = true)
public class MyEntity {
String name;
String name2; // just something to set also
// Customized builder
public static class MyEntityBuilder {
private String name;
public String getName() {
return this.name;
}
// This is not actually needed but just as an example howto
// customise a setter.
public MyEntityBuilder name(String name) {
this.name = name;
return this;
}
}
}

测试它(Junit5(:

@Test
void test() {
MyEntityBuilder meb = MyEntity.builder(); 
var myEntity = meb
// You need to set this first to access it later
.name("Name #1")
// The benefit having a getter ?
.name2(meb.getName())
.build();
assertEquals(myEntity.getName(), myEntity.getName2());
}

构建者不会,通常地有吸气器。构建器模式如下:

  1. 创建生成器
  2. 在生成器中设置值
  3. 调用build((

您提到使用IntelliJ IDEA作为IDE。碰巧有一个IDEA插件正是为了这个:https://plugins.jetbrains.com/plugin/6317-lombok

一旦安装了插件,IDEA就应该识别Lombok的注释语法。

相关内容

  • 没有找到相关文章

最新更新