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

相关文章
相关标签/搜索