[英]Possible to add generics to implementation of a non-generic interface in Java?
如果接口定義不使用泛型,是否可以泛化接口的實現? 我無法控制需要實現的接口,但想取消實現的“未經檢查”的警告。
有些問題可以解決,有些則不能。
如果接口例如如下所示:
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中,可以通過選中忽略下不可避免的泛型類型問題來抑制這些警告。
Windows>首選項> Java>編譯器>錯誤/警告
覆蓋時始終可以限制返回值,這稱為協變量返回類型 。 添加泛型元素就是這樣。
否則,如前所述,不允許使用限制參數。 覆蓋時,您可以為參數使用更廣泛的類型,這稱為相反方差 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.