java - 什么时候需要为集合指定泛型类型?

标签 java generics collections conventions

以下代码行每次编译(当然,在单独的方法中):

List<String> list = new ArrayList<String>();
List<String> list = new ArrayList<>();
List<String> list = new ArrayList();

其中一项是否比其他项受到鼓励?这些选项之间的行为有什么差异吗?

最佳答案

<>称为菱形运算符,它根据引用变量声明确定类型。

Recommended is using diamond operator因为这避免了类型变量的样板或重复声明,因为它从变量声明中清晰可见,同时允许类型在未指定的情况下默认为对象类类型。

以上三个都有效,除了List<String> list = new ArrayList();发出警告或根本不被视为良好做法。

我的想法: List<String> list = new ArrayList();从这个角度来看,它也可能是一个有效的声明,但它默认为对象类型的数组列表(Java 就是这样)。准确地说:

if you don't specify a type, it defaults to Object type

关于java - 什么时候需要为集合指定泛型类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58601544/

相关文章:

java - 如何将 Android 应用程序连接到 Web 服务器

java - 使用 J2EE 创建强大且可扩展的电子商务解决方案/Web 应用程序

JavaFX。在不同线程中将项目添加到列表不起作用

c# - 键是一对整数的字典

Java - 更新 HashMap 值的最佳方式 - 按值/引用传递相关

Java:如何从不同的模块读取文件?

java - spring中如何动态禁用特定API?

java - 扩展泛型

arrays - 带有协议(protocol)的 Swift 泛型数组

generics - 均值函数的 Rust 泛型语法