在实现泛型方法时,返回值类型有所不同。
- 论坛
- 在实现泛型方法时,返回值类型有所不同。
11 浏览
在实现泛型方法时,返回值类型有所不同。
今天我偶然发现了一些我甚至都没想到能够编译的Java代码。将其简化到最简形式,如下所示:
import java.util.List; interface A {List foo(); } interface B { List foo(); } class C implements A, B { @Override public List> foo() { return null; } }
乍一看,接口A和B中的foo方法的类型参数
import java.util.List; interface A { Listfoo(); } interface B { List foo(); } class C implements A, B { @Override public List> foo() { return null; } }
我不需要修复上面的代码片段,因为那些只是我编造的例子来解释我的观点。我只是好奇为什么编译器在处理它们时会有所不同。请问有人可以解释一下在这里起作用的精确规则是什么吗?