在Java中创建通用类型的实例?

问题:

是否可以在Java中创建通用类型的实例?我正在考虑我所看到的答案是nodue to type erasure),但如果有人看到我缺少的东西,我会感兴趣

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

编辑:事实证明,Super Type Tokens可以用来解决我的问题,但它需要大量的基于反射的代码,如下面的一些答案所示。
我会离开这个开放一段时间,看看有没有人想出与Ian Robertson的Artima Article有什么不同?

回答:

你是对的。你不能做“新的E”。但是你可以改变它

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

这是一个痛苦。但它的作品。将其包装在工厂模式中,使其更容忍。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Create instance of generic type in Java?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

32 − 27 =