gpt4 book ai didi

java - 声明 ArrayList 或集合实现类的最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:00 24 4
gpt4 key购买 nike

任何人都可以解释一下 ArrayList 存储 String 的以下声明有什么区别。

List type1 = new ArrayList();
List type2 = new ArrayList<String>();
List<String> type3 = new ArrayList<String>();
ArrayList<String> type4 = new ArrayList<String>();
List<String> type5 = null;
ArrayList<String> type6 = null;

那么上面哪一个声明是声明 String 的 ArrayList 的最佳实践,为什么?

最佳答案

前两个使用原始类型。这样做意味着您的列表根本不是类型安全的。即使您的意图是拥有一个字符串列表,编译器也会让您在其中存储整数。编译器会发出警告,您不应忽略。

第三个是对的。它告诉编译器你的意图是使用一个字符串List,你选择的具体实现是ArrayList。如果您稍后改变主意并想使用 LinkedList,则您只需更改这行代码。

第四个告诉编译器你的程序不仅仅需要一个列表。它需要这个 List 是一个 ArrayList。如果您的代码确实需要调用特定于 ArrayList 且不存在于 List 接口(interface)中的方法,则可以这样做。但在 99.9% 的情况下,情况并非如此,您应该更喜欢第三种。

最后两个声明一个变量并将其初始化为 null 而不是创建一个列表。那是一种设计气味。在使用该列表之前,您必须在所有地方确保它不为空。立即使用有效列表对其进行初始化要安全得多。

关于java - 声明 ArrayList 或集合实现类的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29726891/

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