我们可以在.NET中解决这个问题:
interface I<A> {}
interface I<A, B> {}
...但在Java中,相同的代码将导致编译错误。
这很有趣,因为即使类型信息在运行时消失了,人们也会期望有关类型参数数量的信息仍然存在。
如果此限制与类型擦除有关,有人可以解释原因吗?
答案 0 :(得分:6)
答案 1 :(得分:1)
在java中,泛型类/接口具有固定数量的泛型参数。这就是定义语言的方式。
与你所谈论的最接近的可能是:
interface I<A> {}
interface J<A, B> extends I<A> {}
J
的实例仍可分配给I
类型的变量。