java - 从父类(super class)创建 ArrayList 但包含扩展类的对象

标签 java generics arraylist

我有 3 节课。联系人、电子邮件联系人和电话联系人。我想创建一个可以包含 EmailContact 和 PhoneContact 中的对象的 Arraylist。我需要找到一种方法来获取这些对象。这是我到目前为止所拥有的,但它似乎并没有像我想要的那样将它们分开。

    public void addEmailContact(String date, String email) {
        ArrayList<Contact> con = new ArrayList<>();
        con.add(new Contact(date, email));
    }

    public void addPhoneContact(String date, String phone) {
        ArrayList<Contact> con = new ArrayList<>();
        con.add(new Contact(date, phone));
    }

最佳答案

通配符可以为您提供帮助。可以将任何扩展 Contact 类的类添加到接受 ? 的列表中。 super 联系方式

List<? super Contact> list= new ArrayList<>();
list.add(new EmailContact());
list.add(new PhoneContact());

关于java - 从父类(super class)创建 ArrayList 但包含扩展类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53334707/

相关文章:

java - 由于 Cassandra 没有事务并且所有语句都是原子的,因此如果需要,如何模拟回滚?

c# - 为什么我不能将对象转换为受约束的泛型?

TypeScript Omit 和 keyof

java - 在静态方法中调用ArrayList的实例

java - 尝试将开放处理代码转换为pj.5s

java - 如何使用 java sql 查询 Netbeans 忽略数据库中的字段

java - Spring Boot 测试 - 如何在 Spring Boot 之前启动嵌入式服务器?

python - 如何从列表中的项目中删除标点符号并将其另存为列表中的单独项目?

java - 使用Java根据关键字解析文本

Java 嵌套自引用泛型