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