例如,我可以写下以下任何一个:
class example{ ... public void insert (T data) { ... } }
要么
class example { ... public void insert (Object o) { ... } }
在性能方面,两者之间是否存在显着差异?使用泛型我可以限制参数的类型,并且使用第二种方法,我想在创建对象时没有必要定义对象的类型.
另外,使用第二种方法我基本上可以在课堂上插入任何内容,对吗?而对于泛型,类中的每个元素都是相同的类型.
还有什么我想念的吗?
编写后者的唯一原因是您必须定位较早的JVM.泛型是通过类型擦除实现的,因此它们没有运行时影响 - 只增加了编译时间检查,这将改善您的代码.
当然,如果你需要一个包含任何旧对象的集合,或者有几个没有共同超类的混合,你需要普通的Object变体(但是你的类仍然可以是通用的并用new ...实例化.对象>).
我认为你几乎已经钉了它.没有性能差异.在编译代码时,泛型被合理化(Type Erasure),并且在运行时不再存在.他们只需在需要时添加强制转换,并按照您的说明进行类型检查.Neal Gafter写了一篇关于它们如何工作的概述,Generics当前的问题以及如何在下一版Java中解决它们:http://gafter.blogspot.com/2006/11/reified-generics-for- java.html