如果接口定义不使用泛型,是否可以生成接口的实现?我无法控制我需要实现的接口,但想为我的实现抑制“未经检查”的警告。
问问题
132 次
2 回答
4
有些问题可以解决,有些则不能。
例如,如果界面如下所示:
interface OldInterface {
List someMethod();
}
那么当然,你可以通过
class NewClass implements OldInterface {
public List<String> someMethod() { // DOES COMPILE.
...
}
}
另一方面,如果界面看起来像
interface OldInterface {
void someMethod(ArrayList list);
}
那么你对它的编程无能为力。
class NewClass implements OldInterface {
public void someMethod(ArrayList<String> list) { // DOES NOT COMPILE.
...
}
}
这就是所谓的不可避免的泛型类型问题。幸运的是,至少在 Eclipse 中,这些警告可以通过选中Ignore unavoidable generic type questions来抑制
Windows > 首选项 > Java > 编译器 > 错误/警告
于 2012-07-18T06:43:29.273 回答
0
覆盖时总是可以限制返回值,它被称为协变返回类型。添加泛型元素就是这样。
否则,如前所述,不允许限制参数。重写时,您可以为参数使用更广泛的类型,称为逆变。
于 2012-07-18T07:02:48.673 回答