【发布时间】:2014-05-23 01:03:01
【问题描述】:
public <A extends Interface1,I extends Interface2> I Method(A a);
这是一个接口中的方法。当我要重写此接口方法时,我可以用任何实现 Interface2 的类替换 I,但如果参数 A 是 Interface1 的子类,则它会被拒绝。它只能是 Interface1 类型。所以当我尝试时:
public SubTypeofInterface2 Method(Interface1 a); //fine
public SubTypeofInterface2 Method(SubTypeofInterface1 a); // not accepted
为什么会这样?
【问题讨论】:
-
在这个例子中你的泛型是多余的。