是否可以在 Java 中创建泛型类型的实例?根据我所看到的,我在想答案是 no
( _由于类型擦除_),但如果有人能看到我遗漏的东西,我会很感兴趣:
class SomeContainer<E>
{
E createContents()
{
return what???
}
}
编辑:事实证明, Super Type Tokens 可以用来解决我的问题,但它需要大量基于反射的代码,正如下面的一些答案所表明的那样。
我会把它打开一会儿,看看是否有人想出与 Ian Robertson 的 Artima 文章 截然不同的东西。
原文由 David Citron 发布,翻译遵循 CC BY-SA 4.0 许可协议
你是对的。你不能做
new E()
。但是你可以把它改成这很痛苦。但它有效。将其包装在工厂模式中使其更容易容忍一些。