2012-07-18 53 views

回答

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. 
     ... 
    } 
} 

這就是所謂的unavoidable generic type problem。幸運的是,這些警告被抑制,至少在Eclipse中,通過檢查忽略不可避免的通用類型問題

窗口>首選項>的Java>編譯器>錯誤/警告

0

限制的返回值始終是可能的當重寫時,它被稱爲協變式返回類型。添加一個泛型元素就是這樣。

否則,如前所述,限制參數是不允許的。重寫時,可以使用更寬的類型作爲參數,它被稱爲contra-variance