2017-07-25 37 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
如果你注意到,演示示例顯示同時建設的對象,你可以如何初始化多個屬性