当前位置: 首页 > 知识库问答 >
问题:

初始化列表,如果列表为空与lombok getter?

於炯
2023-03-14

我目前正在替换我所有的标准POJO,以便在所有样板代码中使用Lombok。我发现自己保留了列表的getter,因为如果列表尚未初始化,我希望返回一个空列表。也就是说,我不希望getter返回null。如果有一些我不知道的龙目山魔法可以帮助我避免这样做?

生成的代码示例

private List<Object> list;
public Object getList(){ return list; }

我想要的是:

private List<Object> list;
public Object getList(){
    if (list == null) {
        return new ArrayList();
    }
    return list;
}

共有3个答案

辛渝
2023-03-14

也就是说,我不希望getter返回null。如果有一些我不知道的龙目岛魔法可以帮助我避免这样做?

你不需要任何魔法来发生。只需初始化列表

赵晟睿
2023-03-14

我的问题和这个一样。尽管上述答案在某些方面很有用,但确切的解决方案是使用Lombok API的@Builder@Singular注释,如下面给定的代码所示。

这对我来说非常有效。

@Builder
class MyClass{
    @Singular
    private List<Type> myList;
}

这将使用非空列表对象初始化myList。不过,这是一个老问题。但是,仍然张贴这个答案,以帮助像我这样的人谁将在未来提到这个问题。

汝宏伯
2023-03-14

可以通过声明和初始化字段来实现这一点。初始化将在初始化封闭对象时完成。

private List<Object> list = new ArrayList();

Lomboks@Getter注释提供了一个属性延迟,该属性允许延迟初始化。

 @Getter(lazy=true) private final double[] cached = expensiveInitMethod();

文献资料

 类似资料:
  • 考虑如下代码: vector<double> v = { 1, 2, 3.456, 99.99 }; list<pair<string,string>> languages = { {"Nygaard","Simula"}, {"Richards","BCPL"}, {"Ritchie","C"} }; map<vector<string>,vector<int>> years = {

  • 问题内容: 我打算初始化一个长度为n的列表列表。 但是,这以某种方式将列表链接在一起。 我希望有这样的东西: 有任何想法吗? 问题答案: 问题在于它们在内存中都是完全相同的列表。当使用语法时,得到的是n许多x对象的列表,但是它们都是对同一对象的引用。它们不是不同的实例,而是n对同一实例的引用。 要列出3个不同的列表,请执行以下操作: 这为你提供了3个单独的实例,这是你想要的 类似于 虽然类似于:

  • 看起来很简单,但是,如何初始化 Kotlin 的以清空? 我可以用这种方式破解它,但我肯定有更简单的方法:

  • 这是我第一次使用列表。我有一个名为Foods的类,我想用它做一个动态列表。我写了第一行,您可以看到下面,然后有很多方法刚刚弹出,我需要重写。我应该在每种方法中写些什么?或者这是制作列表实例的正确方法吗?

  • 问题内容: 我想初始化一个多维列表。基本上,我想要一个10x10的网格-10个列表的列表,每个列表包含10个项目。 每个列表值都应初始化为整数0。 单行执行此操作的明显方法:将不起作用,因为它会生成一个包含10个引用的列表,该列表引用一个列表,因此更改任何行中的项都会更改所有行中的项。 我看过的文档讨论了用于复制列表的方法,但是在使用乘法器时仍然无法使用:与效果相同。 除了创建s循环之外,是否有一

  • 说明 用于初始化商城商品和分类,注意此协议列表中的商品将会添加到商城,请避免相同商品多次提交。 建议此协议在首次初始化商城时使用,后续新增/修改直接使用商品分类、商品的相关协议 请求地址 http://api.dc78.cn/Api/mall_init_commodity 请求方式 POST 请求参数 POST数据: data=商品明细数据,格式如下: [ { "name": "小家电", "ra