Java中ArrayList的向上轉型問題(父類與子類的關係)

果真是java都沒學好,今天寫方法的時候想把方法參數寫成List<父類>,而後傳子類進去統一處理,結果發現報錯。java

丟人地百度了:接口

ArrayList<ChildClass>();包括泛型在內的整個做爲類型是沒法強轉成ArrayList<FatherClass> get

若是想這樣使用 能夠使用 extends 關鍵字來限制泛型參數的適用範圍 io

List<T extends Collection>  表示泛型實際參數能夠是全部實現了 Collection接口的類,如list,set等。泛型

因此這個就這樣寫百度

ArrayList<? extends FatherClass> object = new ArrayList<ChildClass>();object

表明泛型參數能夠是FatherClass或者其子類。List

-----------------方法

參數寫成List<? extends FatherClass>就能夠了。co

相關文章
相關標籤/搜索