gpt4 book ai didi

java - 从为父类(super class)创建的链表中插入和提取子类

转载 作者:行者123 更新时间:2023-12-01 17:25:23 24 4
gpt4 key购买 nike

我制作了一个通用链表

Container<String, Person> 

保存 Person 对象。我需要用分别称为 Owners 和 Mechanics 的两个子类的对象来填充此列表。这部分目前进展顺利(我正在创建所有者和机械师对象作为它们所属的各自子类,并使用我的插入函数将它们放入列表中),但是当我尝试使用以下方法提取所有者或机械师时:

Owner o = container.get("John");

我收到以下错误:

error: "incompatible types
Owner o = container.get("John"); ^
required: Eier
found: Person

如何规避/解决这个问题?

最佳答案

这是因为编译器不知道“John”所有者。您可以转换:

Owner o = (Owner)container.get("John");

或者在转换之前检查它是否是Owner以避免可避免的异常,使用instanceof

Person p = container.get("John");
if (p instanceof Owner){
Owner o = (Owner) p;
}

关于java - 从为父类(super class)创建的链表中插入和提取子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322325/

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