【发布时间】:2015-06-04 14:23:11
【问题描述】:
我发现了很多关于如何 克服这个限制的帖子,但没有一个关于为什么存在这个限制的帖子(this one 除外,它只是提到它与类型擦除有关)。
那么为什么不能创建一个泛型类型的实例呢?
澄清一下,我的问题不是如何它可以做到。我知道这在 C# 中是可能的,那么为什么不在 Java 中呢?我很好奇为什么 Java 人没有实现类似的机制?为什么要强制 Java 开发人员使用可能导致运行时错误的笨拙变通方法?这种机制有没有潜在的危害?
【问题讨论】:
-
泛型类型可以是任何东西。那么,你将如何调用构造函数呢?
-
在 C# 中,您可以通过强制执行“新”约束(“指定泛型类声明中的任何类型参数必须具有公共无参数构造函数”)。所以从技术上讲,有可能这导致我建议它只是在该语言中不可用。
-
你当然可以创建一个实例泛型对象
-
@user489041 我的意思是为什么不能使用 new 运算符。
-
你能举一个你认为你应该能够做什么的例子吗?我根据您的link 给出了答案
标签: java generics type-erasure