gpt4 book ai didi

Java - 向上转换 ArrayList 层次结构

转载 作者:搜寻专家 更新时间:2023-11-01 04:04:47 24 4
gpt4 key购买 nike

我有一个简单的类结构:

class BaseModel {}

class Performer extends BaseModel {}

我有一个 Performer 的集合小号:

ArrayList<Performer> list = loadPerformerList();

为什么我不能这样做?

functionThatNeedsArrayOfBase( (ArrayList<BaseModel>)list );

或者,我该如何正确地做到这一点?

最佳答案

child 的集合不是 base 的集合。否则,您可以将基础对象添加到您的子集合中,从而打破假设(反之亦然)。

您可以将函数的参数指定为包含基数导数的列表:

void functionThatNeedsArrayOfBase(ArrayList<? extends BaseModel> list) {
//...
}

然后你可以只传递 list 而无需强制转换

关于Java - 向上转换 ArrayList 层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10920877/

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