gpt4 book ai didi

java - ArrayList不会将.get(int)用于列表中的子类对象,但允许我使用.add()

转载 作者:行者123 更新时间:2023-12-01 16:20:08 25 4
gpt4 key购买 nike

我有一堂课

public abstract class superObject{}


和子类

public class subObj1 extends superObject{}

public class subObj2 extends superObject{}


在我的主班我有

List<superObject> aList = new ArrayList<>();


其中将允许我调用

aList.add(subObj1)


但我不能调用

aList.get(0)


因为Array列表中不是superObject类型的任何对象,编译器说我正在尝试返回不兼容的类型。

我完全不知道为什么?

编辑:示例代码不正确

最佳答案

当您从列表中返回一个对象时,它将被视为一个超对象,如果您想将其用作subObj1或任何其他子类,则必须对其进行转换:

subObj1 sub = (subObj1) aList.get (0);

关于java - ArrayList不会将.get(int)用于列表中的子类对象,但允许我使用.add(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62302160/

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