L42*_*L42 17 java lombok java-8
我目前正在替换所有标准POJO,以便将Lombok用于所有样板代码.我发现自己保留了列表的getter,因为如果列表尚未初始化,我想返回一个空列表.也就是说,我不希望getter返回null.如果有一些我不知道的lombok魔法可以帮助我避免这样做吗?
生成代码的示例
private List<Object> list;
public Object getList(){ return list; }
Run Code Online (Sandbox Code Playgroud)
我想要的是:
private List<Object> list;
public Object getList(){
if (list == null) {
return new ArrayList();
}
return list;
}
Run Code Online (Sandbox Code Playgroud)
sta*_*ker 11
您可以通过声明和初始化字段来实现此目的.初始化封闭对象时将完成初始化.
private List<Object> list = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
Lomboks @Getter注释提供了一个lazy允许延迟初始化的属性.
@Getter(lazy=true) private final double[] cached = expensiveInitMethod();
Run Code Online (Sandbox Code Playgroud)
我有同样的问题.虽然上述答案在某些方面很有用,但确切的解决方案是使用@Builder和@Singular注释Lombok API,如下面给出的代码.
它对我来说非常棒.
@Builder
class MyClass{
@Singular
private List<Type> myList;
}
Run Code Online (Sandbox Code Playgroud)
这将使用非null List对象初始化myList.虽然,这个问题很古老.但是,仍然发布这个答案,以帮助像我这样将来会提到这个问题的人.
| 归档时间: |
|
| 查看次数: |
13047 次 |
| 最近记录: |