Java中父类和子类集合互相转换(转)

(转至:https://www.cnblogs.com/ledphz/p/12373051.html)

定义

A是B的子类,A比B多几条属性

要点:

A是B的子类,但List<A>不是List<B>的子类。所以想直接转换是不行的。

子类转父类

List<A> childList = getxxxxxx;
List<B> dadList = new ArrayList<B>();
for(A a : childList){
    dadList.add(a);       //依次加到父类List里
}

父类转子类(1)

List<B> dadList = getxxxxxx;
List<A> childList = new ArrayList<A>();
for(B b : dadList){
    childList.add((A)b);    //强转后依次加到子类List里
}

父类转子类(2)

List<B> dadList = getxxxxx;
List<A> childList = new ArrayList<A>();
for(B b : dadList){
    A a = new A();
    a.setxxx(b.getxxx);
    childList.add(a);
}
posted @ 2022-01-24 17:14  freedomAndWind  阅读(1721)  评论(0编辑  收藏  举报