我正在学习Java中的泛型,并且想知道这是否会被认为是糟糕的编码.
如果我声明ArrayList<Object>我知道我可以将任何类型的对象放入此列表中,因为所有对象都来自Object.我也知道,当我调用ArrayList.remove(index)从数组中取出的对象是Object类型时,我需要将其类型转换为我想要使用的对象类型.
现在假设我有对象Dog,Cat和Car.考虑到它们不是类似的类,将所有三个对象放入数组会不会很糟糕?
让我们修改一下 a 的定义Collection,如Java集合简介教程中所示:
\n\n集合 \xe2\x80\x94 有时称为容器 \xe2\x80\x94 只是一个将多个元素分组为单个单元的对象。集合用于存储、检索、操作和通信聚合数据。通常,它们代表形成自然组的数据项[...]。
\n
看看那些粗体字。这应该会给你答案。
\nArrayList如果您将不属于相同实现的对象放入其中,那么当您想要从列表中检索对象并将它们类型转换为适当的类型时,您肯定会带来麻烦。所以你应该避免这样做。
考虑您将Dog和 的对象存储Car在 中ArrayList。\n然后,对于存储的每个对象,您想要调用某个方法,例如barkLoudly()。现在,这个方法可以很好地处理该Dog对象。但是当这个被调用时Car,boooom ....Exception就会出现。
| 归档时间: |
|
| 查看次数: |
2998 次 |
| 最近记录: |