使用groovy@Builder时设置默认属性值

使用groovy@Builder时设置默认属性值,groovy,Groovy,似乎@Builder不支持为类属性设置默认值 @Test void test() { assert Foo.builder().build().getProp() != null // fail } @Builder class Foo { Map prop = [:] } 我可能会通过覆盖build方法来解决这个问题,但是如何解决呢?不太确定@builder的builder()方法的实现 我相信您需要初始化该类的属性/成员,然后执行.build()来创建该类的实例 以下是一

似乎@Builder不支持为类属性设置默认值

@Test
void test() {
    assert Foo.builder().build().getProp() != null // fail
}

@Builder
class Foo {
    Map prop = [:]
}

我可能会通过覆盖build方法来解决这个问题,但是如何解决呢?

不太确定
@builder
builder()方法的实现

我相信您需要初始化该类的属性/成员,然后执行
.build()
来创建该类的实例

以下是一个例子:

import groovy.transform.builder.Builder

@Builder
class Foo {
    Map prop
}

def map = [a:1, b:2]
def f = Foo.builder().prop(map).build()
assert map == f.prop // or you can use f.getProp()
您可以在网上快速试用

如果您注意到,演示示例将显示如何在构建对象时初始化多个属性。

不太确定
@builder
builder()方法的实现

我相信您需要初始化该类的属性/成员,然后执行
.build()
来创建该类的实例

以下是一个例子:

import groovy.transform.builder.Builder

@Builder
class Foo {
    Map prop
}

def map = [a:1, b:2]
def f = Foo.builder().prop(map).build()
assert map == f.prop // or you can use f.getProp()
您可以在网上快速试用
如果您注意到,演示示例将显示如何在构建对象时初始化多个属性。

可能重复的可能重复的