gpt4 book ai didi

java - "HashMap$Entry cannot be cast to X"尝试使用循环从 Map 中提取值时

转载 作者:行者123 更新时间:2023-11-29 06:34:29 25 4
gpt4 key购买 nike

public class CarService implements ICarService {
private final Map<String, Car> carMap = new HashMap<String, Car>();

@Override
public List<Car> findAll() {
final ArrayList<Car> al = new ArrayList<Car>();
for (final Map.Entry<String, Car> entry : carMap.entrySet()) {
al.add((Car) entry);
}
return al;
}
}

我有一个名为 CarService 的类,它将从 carMap 中获取所有信息并存储到列表中。但是我得到错误指示“java.util.HashMap$Entry cannot be cast to Car”

final CarService carSvc = new CarService();
List<Car> getAllCar = new ArrayList<>();
getAllCar = carSvc.findAll();
System.out.println(getAllCar.size());

这是我调用汽车服务的主要功能

最佳答案

问题出在你的for循环。

for (final Map.Entry<String, Car> entry : carMap.entrySet()) {
al.add((Car) entry);
}

在这里,您声明 entry作为Map.Entry<String, Car> .您不能将其转换为 Car以任何方式。您需要获取 Map.Entry并将其添加到 a1 .

您可以使用 getValue() method 执行此操作.例如,

for(final Map.Entry<String, Car> entry : carMap.entrySet()) {
a1.add(entry.getValue());
}

由于您的类型参数,最终根本不需要转换。

关于java - "HashMap$Entry cannot be cast to X"尝试使用循环从 Map 中提取值时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24072926/

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