2017-07-25 39 views
1

似乎为类属性设置了默认值,并不符合@Builder。使用groovy @Builder时设置默认属性值

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

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

我可能通过重写构建方法来解决这个问题,但是怎么做?

+0

[Groovy @Builder AST中的默认值]的可能重复(https://stackoverflow.com/questions/35066664/default-values-in-groovy-builder-ast) –

回答

0

不太确定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() 

您可以快速地在线试用Demo
如果你注意到,演示示例显示同时建设的对象,你可以如何初始化多个属性