我们可以在 .NET 中解决这个问题:
interface I<A> {}
interface I<A, B> {}
...但在 Java 中,相同的代码会导致编译错误。
这很有趣,因为即使类型信息在运行时消失了,人们仍希望有关类型参数数量的信息仍然存在。
如果此限制与类型删除有关,有人可以解释原因吗?
最佳答案
它与类型删除无关,而与使用 raw type 引起的歧义无关。 :
I eye = null; // which 'I' is it?
为了适应在 JDK 5.0 中引入泛型之前编写的代码,允许使用原始类型。
关于java - 为什么 Java 不允许基于类型参数的重载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17583668/