是否可以在 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/