java - 在 Java 1.5 版之前的 ArrayList 中,如何在没有泛型的情况下处理类型

标签 java generics arraylist

<分区>

我有一个关于 Java 历史的问题。
Java 从 1.2 开始就有了 ArrayList
Java 从 1.5 版开始就有泛型。

在没有定义类型的泛型的情况下,ArrayList 的实现情况如何?

最佳答案

这一切都是用 Object 完成的(并且涉及很多转换),例如:

ArrayList list = new ArrayList();
list.add(new Thingy());
// ...
Thingy t = (Thingy)list.get(0);
// Note ---^^^^^^^^

列表只知道它存储的是对象,这取决于使用列表的代码转换回有用的类型。

正如您所想象的,这会导致各种不愉快——您可能会在列表中放入错误类型的对象,然后在稍后尝试将其转换为该类型时得到 ClassCastException你在期待;如果您更改列表中的内容,则必须在所有地方更改您的类型转换,并且不可避免地会忘记一个等等。泛型有助于消除这些痛点。

关于java - 在 Java 1.5 版之前的 ArrayList 中,如何在没有泛型的情况下处理类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43042341/

相关文章:

java - 尽管添加了 JavaFX 插件,Gradle 项目仍无法找到 JavaFX 应用程序类

Java 泛型转换类型不匹配

generics - 将通用数字参数与常量进行比较

java - 如何根据其中的两个元素(两列)对类型为 class 的数组列表进行排序

java - Jackson - 将 JSON 字符串字段映射到只有一个字段(字符串)的类/pojo

java - 如何从 JFrame 切换到 java 类?

generics - 使包装的 F# SRTP 函数通用

java - Java 中的 ArrayList 到 HashMap

java - 从 Java ArrayList 中删除项目时接收 IndexOutOfBoundsException

java - 使用异步函数分配全局变量