Java:ArrayList初始化(两行代码之间的差异)

标签 java arraylist

我希望我的问题听起来不会很愚蠢,但我想知道这两行之间有什么区别:

(假设我创建了一个名为 Cow 的类..)

ArrayList<Cow> c1 = new ArrayList<Cow>();

ArrayList<Cow> c2 = new ArrayList();

提前感谢您的解释。

最佳答案

目前,本质上没有区别,因为 type erasure 。优选第一种形式;第二种形式使用原始类型,并且仅支持向后兼容旧版本的 Java。一个好的编译器如果你使用它,会给你警告。

the Java Language Specification, Third Edition, §4.8解释:

The use of raw types is allowed only as a concession to compatibility of legacy code. The use of raw types in code written after the introduction of genericity into the Java programming language is strongly discouraged. It is possible that future versions of the Java programming language will disallow the use of raw types.

(强调原文)。

关于Java:ArrayList初始化(两行代码之间的差异),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9501514/

相关文章:

java - H2语句池

java - Spring Security SAML 与标准 java 应用程序

java - 在 Java 中从 ArrayList 生成序列号

android - 来自json的Arraylist,并在Kotlin的recyclerView中使用它

java - 如何知道我使用的是 Open JDK 还是 Oracle JDK?

java - 单次按键的多个 KEY_PRESSED 事件(等于 '=' 键)

java - 如何为 spring-cloud-stream 配置 GlobalChannelInterceptor ?

java - 将数据从 ArrayList 加载到 DefaultTableModel

java - 在文件中查找字符串或字符串数​​组在Java中将它们分开

java - List.addAll 正在复制 session 变量