试图了解Java Generics

时间:2015-03-01 23:01:20

标签: java generics

Java语法的泛型类和方法直到Java 5.0才添加。但早期版本的Java具有集合类,例如数组列表或链表。如何在没有通用语法的情况下实现和使用类。为什么泛型的语法更好?

3 个答案:

答案 0 :(得分:1)

如果没有泛型,每个项目都将作为所有Java对象的基类' Object'存储在集合中。这意味着当你将它们从集合中取回时重新铸造它们。重新铸造意味着你必须确定它们是什么类型,这使你容易犯下危险的错误。使用泛型,您可以永久记录您在集合中存储的对象的类/类型,以便在它们出现时,它们仍然表示为该类的对象。没有更多的铸造问题。

答案 1 :(得分:0)

泛型提供类型安全性。例如,如果您有ArrayList<String>,则您知道它只能保存字符串。但是,如果您只有List作为原始类型,则可以向其添加不同类型的对象,这可能会在运行时从列表中检索项目时导致ClassCastExceptions。

有关为什么应始终使用泛型而不是原始类型的完整说明,请参阅有效Java中的泛型一章,特别是“第23项:不要在新代码中使用原始类型”:http://uet.vnu.edu.vn/~chauttm/e-books/java/Effective.Java.2nd.Edition.May.2008.3000th.Release.pdf < / p>

答案 2 :(得分:0)

在Java教程中阅读Why Use Generics?以获得充分的理由。

总结

  • 在编译时进行更强的类型检查;
  • 消除演员阵容;
  • 使程序员能够实现通用算法,从而重用更多代码。