java - 在 Java 中,什么时候应该使用 "Object o"而不是泛型?

标签 java generics

例如,我可以编写以下任何一个:

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/

相关文章:

java - 将 pdf 文件编码为 JSON 字符串时出错

c# - 排除通用约束中的类型(可能?)

generics - 在一种情况下将 Kotlin 泛型限制为不为 null

java - Spring Boot应用程序启动失败,tomcat 7 jdk1.8

java - 如何获取kafka的消费者offset值

java - 光流方法返回意外值

java - 带通配符的泛型类型中的 'read-only' 对象

java - 下界通配符 Java - 访问方法

java - 以循环方式从 map /任何集合中获取值

java - JSoup 解析 Webview 的 HTML