18

有没有在 Java 中使用非泛型集合而不是泛型更好的情况(或者它们仍然存在只是为了向后兼容)?

4

1 回答 1

15

绝对不。如果您无法在声明时推断类型,请使用 a?作为类型说明符 - 这就是它的用途。(在某些情况下 using?会限制您调用某些方法,例如List.add(). 在这种情况下,您可以找到更具限制性的类型说明符;Object通常有效)。

仍然支持非泛型用法,因为从技术上讲,使用它并没有错;您最终会编写更多的铸造说明,并使自己面临更高的ClassCastException's 风险,但就规范而言,它在技术上是合法的。

总的来说,没有任何情况(我能想到)避免使用泛型“比”使用它们更好。在最坏的情况下(当您必须使用?Object在声明时),这两种方法是相等的。

于 2012-12-05T00:26:16.857 回答