相关疑难解决方法(0)

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

是否可以在Java中创建泛型类型的实例?我正在考虑基于我所看到的答案是no(由于类型擦除),但如果有人能看到我缺少的东西,我会感兴趣:

class SomeContainer<E>
{
    E createContents()
    {
        return what???
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:事实证明,超级类型标记可用于解决我的问题,但它需要大量基于反射的代码,如下面的一些答案所示.

我会把这个开放一段时间,看看是否有人提出了与Ian Robertson的Artima文章截然不同的任何东西.

java generics

554
推荐指数
16
解决办法
43万
查看次数

为什么不能使用"new"运算符创建泛型类型的实例?

我发现了很多关于如何克服这个限制的帖子,但是没有关于为什么存在这种限制的帖子(除了这个,它只是提到它与类型擦除有关).

那么为什么不能创建泛型类型的实例呢?

澄清一下,我的问题不是如何做到的.我知道在C#中有可能,为什么不用Java?我很好奇为什么Java人员没有实现类似的机制?为什么迫使Java开发人员使用可能导致运行时错误的尴尬变通方法?这种机制是否存在潜在的危险?

java generics type-erasure

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

generics ×2

java ×2

type-erasure ×1