<分区>
我有一个关于 Java 历史的问题。
Java 从 1.2 开始就有了 ArrayList
。
Java 从 1.5 版开始就有泛型。
在没有定义类型的泛型的情况下,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/