在使用@Getter @Setter注释时,有没有办法让lombok在null的情况下创建一个对象?

时间:2016-06-28 11:23:05

标签: java lombok intellij-lombok-plugin

有一个包含类B的简单类A是否有任何lombok注释,如果为null,将在a中创建类b的新实例?

public class A {

   @Getter
   @Setter
   private B b;

}

1 个答案:

答案 0 :(得分:2)

我担心这个功能不存在。 documenation列出了注释的许多配置键,但未列出您所使用的功能。

有人最近在Lombok Github page上要求提供类似的内容:

  

我喜欢这个场景的这个功能:

     

@Getter(lazy = true) private List<String> foo = new ArrayList<>();   生成这样的东西:

private List<String> foo;

public List<String> getFoo() {
    if (this.foo == null) {
        this.foo == new ArrayList<>();
    }
    return this.foo;
}
     

当然,它可以使用双重检查锁定或AtomicReference,但这里的重点是我得到一个空列表而不是空引用。例如,它是JAXB类中常见的习惯用法,可以很好地减少Lombok的大小。

因此,该功能尚未实现。如果我是你,我会避免在这些情况下使用注释,而是创建手工所需的方法。