2017-07-07 294 views
0

假设有A类:当@Builder和@NoArgsConstructor设置,变量没有得到初始化

@Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor 
public class A extends X implements Y, Z { 

    private B b = new B(); 

    private List<C> cList = new ArrayList<>(); 

} 

当我通过调用A a = new A();创建一个对象,没有变量得到初始化,所以bcListnull

如果@Builder注释被删除,它就起作用。

我在项目lombok文档中找不到任何解决方案。

我应该怎么做才能让它们初始化?

回答

0

作为每https://github.com/rzwitserloot/lombok/pull/1429

“就目前而言,解决方法是键入一个无参数构造,并与在构造相同的表达初始化字段”。

@Getter @Setter @Builder @AllArgsConstructor 
public class A extends X implements Y, Z { 

    private B b = new B(); 

    private List<C> cList = new ArrayList<>(); 

    public A() { 
     b = new B(); 
     cList = new ArrayList<>(); 
    } 

}