果真是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