gpt4 book ai didi

java - 如何将实例对象的元素添加到数组列表?

转载 作者:行者123 更新时间:2023-12-03 23:00:54 24 4
gpt4 key购买 nike

我有两个这样声明的数组列表:

ArrayList<Book> books=new ArrayList<Book>();
ArrayList<Painting> paintings=new ArrayList<Painting>();

Book 和 Painting 是类。我想像这样定义一个函数 addToList:

public void addToList(Object myObject)
{
if(myObject instanceof Book)
books.add(myObject);

else if(myObject instanceof Painting)
paintings.add(myObject);
}

但是它显示了一个错误说类型 ArrayList 中的方法 add(Painting) 不适用于参数 (Object)

类型 ArrayList 中的方法 add(Book) 不适用于参数 (Object)

有办法解决这个问题吗?为什么错误仍然发生,因为我将每个添加语句放在一个 if else 循环中以确认应将适当类的对象添加到相应的数组列表中?

我可以通过将 add 函数拆分为两个不同的 add 函数来完成此操作,其中一个作为参数 Painting myObject,另一个作为 Book myObject,但我想在同一个函数中完成所有操作。可以吗?

最佳答案

您需要先转换对象paintings.add((Painting)myObject); , 通用 ArrayList<Painting>禁止您添加它,因为它需要类 Painting 的继承并抛出编译器错误,因为通用类 Object 不满足此条件

关于java - 如何将实例对象的元素添加到数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29406490/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com