将对象添加到空列表的 Java 最佳实践 [已关闭]

Java best practices on adding object to an empty list [closed]

提问人:devvar 提问时间:11/15/2023 更新时间:11/15/2023 访问量:37

问:


想改进这个问题吗?更新问题,以便可以通过编辑这篇文章用事实和引文来回答。

5天前关闭。

根据某些条件用对象填充空列表,然后返回结果的最佳做法是什么?

我的问题的重点是找出我是否应该初始化数组/将其保留为 null 或其他什么,然后我是否应该将所需的数组分配给结果变量,或者使用 addAll()?

什么是最佳实践?

示例 1:

private List<Integer> getExampleList(boolean shouldGetFirstList) {
        List<Integer> firstList = List.of(1, 2, 3);
        List<Integer> secondList = List.of(4, 5, 6);
        if (shouldGetFirstList) {
            return firstList;
        } else {
            return secondList;
        }
}

示例 2:

private List<Integer> getExampleList(boolean shouldGetFirstList) {
        List<Integer> result = null;
        List<Integer> firstList = List.of(1, 2, 3);
        List<Integer> secondList = List.of(4, 5, 6);
        if (shouldGetFirstList) {
            result = firstList;
        } else {
            result = secondList;
        }
        return result;
}

示例 3:

private List<Integer> getExampleList(boolean shouldGetFirstList) {
        List<Integer> result = new ArrayList<>();
        List<Integer> firstList = List.of(1, 2, 3);
        List<Integer> secondList = List.of(4, 5, 6);
        if (shouldGetFirstList) {
            result.addAll(firstList);
        } else {
            result.addAll(secondList);
        }
        return result;
}

这些是我目前所知道的方法

Java 集合

评论

0赞 daniu 11/15/2023
没有最佳实践,意见问题。另一种方式是三元运算符。return shouldGetFirstList ? firstList : secondList;
2赞 Holger 11/15/2023
当您知道只需要其中一个列表时,没有理由创建两个列表。使用 或者按照 daniu 的建议使用 除此之外,在第二个示例中没有理由初始化。只需声明 然后,您就不会冒意外返回的风险。if(shouldGetFirstList) return List.of(1, 2, 3); else return List.of(4, 5, 6);return shouldGetFirstList? List.of(1, 2, 3): List.of(4, 5, 6);resultnullList<Integer> result;null
0赞 jbx 11/15/2023
通常,应避免返回 null。(返回一个空列表是可以的,并被认为是与 null 的良好做法)。是否要返回原始列表取决于在调用此函数后是否要修改原始列表,并且调用方假定它们是不同的列表(例如,如果原始列表作为参数传递)。在您的情况下,没有理由返回单独的列表。

答: 暂无答案