例如,我可以编写以下任何一个:
class example <T>
{
...
public void insert (T data)
{
...
}
}
或
class example
{
...
public void insert (Object o)
{
...
}
}
两者在性能方面有显着差异吗?使用泛型,我可以限制参数的类型,而使用第二种方法,我想没有必要在创建对象时定义对象的类型。
此外,使用第二种方法我基本上可以在类中插入任何内容,对吧?而对于泛型,类中的每个元素都属于同一类型。
还有什么我想念的吗?
最佳答案
编写后者的唯一原因是您是否必须针对较早的 JVM。泛型是通过类型删除实现的,因此它们没有运行时影响 - 仅添加了编译时检查,这将改进您的代码。
当然,如果你需要一个包含任何旧对象的集合,或者几个没有公共(public)父类(super class)的混合,你需要普通的 Object 变体(但是你的类仍然可以是通用的并用 new 实例化。 ..<对象>).
关于java - 在 Java 中,什么时候应该使用 "Object o"而不是泛型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/354967/