【发布时间】:2013-07-11 01:35:27
【问题描述】:
我们可以在 .NET 中解决这个问题:
interface I<A> {}
interface I<A, B> {}
...但是在 Java 中,相同的代码会导致编译错误。
这很有趣,因为即使类型信息在运行时消失了,人们会期望关于类型参数数量的信息仍然存在。
如果此限制与类型擦除有关,有人可以解释原因吗?
【问题讨论】:
-
限制是你不能多次定义一个接口并且你不能以这种方式重载它。在运行时,类型擦除将确保
I实际上是不允许的相同类型,或者从技术上讲它不会做你想要的。
标签: java generics type-erasure