gpt4 book ai didi

java - Lombok 内部集合初始化

转载 作者:行者123 更新时间:2023-11-29 04:34:32 24 4
gpt4 key购买 nike

我使用 Lombok @Value 注释。是否有可能以某种方式确保内部集合永远不会为空?

例子:

package com.testapp;

import lombok.Value;
import lombok.experimental.Wither;

import java.util.List;

@Value
@Wither
public final class ClassWithList {

private final List<String> list;

public void printList() {
list.forEach(System.out::println);
}

}

如果 list 为 null,这将抛出一个 NullPointerException。我目前的策略是永远不允许发生,内部集合可能为空,它在构造函数 (setter, builder...) 中被清理。然而,在这种情况下是由 Lombok 自动生成的构造函数。有什么方法可以确保 list 属性始终至少初始化为一个空集合,还是我必须开始编写繁琐的 null 检查?

最佳答案

如果您传入的列表有可能为空,您可以覆盖构造函数

public ClassWithList(List<String> aList) {
this.list = aList == null ? new ArrayList<>() : aList;
}

来自 Lombok 项目(强调我的):Value

@Value is shorthand for: final @ToString @EqualsAndHashCode @AllArgsConstructor @FieldDefaults(makeFinal = true, level = AccessLevel.PRIVATE) @Getter, except that explicitly including an implementation of any of the relevant methods simply means that part won't be generated and no warning will be emitted

关于java - Lombok 内部集合初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42253406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com