You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助ElementsOfTheBank类使用addAll()添加不同类型集合元素?

解决方案

要实现老师的要求,你需要让Person和Accounts类都继承自ElementsOfTheBank类,这样它们就能被统一放到泛型为ElementsOfTheBank的列表中。具体步骤如下:

  1. 创建ElementsOfTheBank父类
    这个类可以是一个基础类,如果不需要额外逻辑,甚至可以是空类;也可以添加银行元素的通用属性或方法,比如统一的ID、通用toString方法等:

    public class ElementsOfTheBank {
        // 示例通用方法,可根据需求调整
        @Override
        public String toString() {
            return getClass().getSimpleName();
        }
    }
    
  2. 修改Person和Accounts类,继承ElementsOfTheBank
    调整两个类的定义,加上继承关系,原类的属性和方法无需改动:

    public class Person extends ElementsOfTheBank {
        // 原Person类的属性和方法
        private String name;
        // ... 其他原有代码
    }
    
    public class Accounts extends ElementsOfTheBank {
        // 原Accounts类的属性和方法
        private String accountNumber;
        // ... 其他原有代码
    }
    
  3. 替换泛型为ElementsOfTheBank
    现在就可以把原代码中的???替换成ElementsOfTheBank,顺利调用addAll()方法:

    List<Person> persons = new LinkedList<Person>();
    List<Accounts> accounts = new LinkedList<Accounts>();
    List<ElementsOfTheBank> elements = new LinkedList<>();
    elements.addAll(persons);
    elements.addAll(accounts);
    

原理说明

Java中,List<父类>可以接收所有子类类型的集合,因为addAll()方法支持传入Collection<? extends E>类型的参数(这里E是ElementsOfTheBank),所以List<Person>和List<Accounts>作为子类集合,能被正常添加到List<ElementsOfTheBank>中。

内容的提问来源于stack exchange,提问作者FranS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:25:24