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

标签 java generics

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

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/75175/

相关文章:

java - 按钮只能在圣诞节后使用

java - 如何在不迭代的情况下从 HashMap 中获取一个条目

c# - 测试通用接口(interface)时出现奇怪的接口(interface)/TContext 错误

c# - 使协变接口(interface)向后兼容

java - 带日期和运算符的 SQL 查询 Springboot

java - 让元素粘在java中的数组中(模拟书店项目)

java - 无法单击 Selenium 中表格的元素

objective-c - 在 Swift 中声明具有泛型类型的变量

java - 你能引用 'this' 类作为通用参数吗?

java - Java 中的 Lisp 解释器,处理通用性