java - 在Java中创建泛型类型的实例?

标签 java generics

是否可以在 Java 中创建泛型类型的实例?根据我所看到的,我认为答案是(由于类型删除),但如果有人能看到我的东西,我会很感兴趣我失踪了:

class SomeContainer<E>
{
    E createContents()
    {
        return what???
    }
}

编辑:事实证明Super Type Tokens可以用来解决我的问题,但它需要大量基于反射的代码,正如下面的一些答案所示。

我会让这个问题暂时开放,看看是否有人想出任何与 Ian Robertson 的 Artima Article 截然不同的东西。 .

最佳答案

你是对的。你不能执行new E()。但你可以将其更改为

private static class SomeContainer<E> {
    E createContents(Class<E> clazz) {
        return clazz.newInstance();
    }
}

很痛苦。但它有效。将其包装在工厂模式中使其更容易忍受。

关于java - 在Java中创建泛型类型的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59345534/

相关文章:

java - 为什么我的curl命令不能与Java ProcessBuilder API一起使用

java - 当你有静态 block 时,为什么我们需要 main 方法

java - java 收银机的舍入误差

java - 为什么我的 JUnit 测试(修改数据库条目)失败

generics - 在 Swift 泛型中强制父类(super class)

java - 整数构造变体

Java 泛型 : Inferring types over two parameters

c# - 实现通用接口(interface)方法的方法中的专用类型

java - Collections.emptyList() 之谜

java - Java foreach 循环中的 ClassCastException