gpt4 book ai didi

java - 重新实例化对象而不丢失先前的对象

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

我不太确定应该如何解决我的作业中的这个问题。

我被要求跟踪多个航类,它们都存储在一个文件中,每一行代表每个航类的各个方面。我被要求在有序列表中按航类号跟踪每个航类。

现在我只是想在没有任何 fileIO 的情况下测试我的代码。这就是我现在所拥有的,

OrderedList flights = new OrderedList();

Flight flight = new Flight();
flight.setFlightNumber(678);
flights.add(flight);

flights.printList();

这段代码工作正常,但是当我执行 fileIO 时,我需要将变量重新实例化到另一个航类,如下所示,

....
flight = new Flight();
flight.setFlightNumber(876);
flights.add(flight);

flights.printList();

我认为这里发生的情况是没有找到指向旧航类的指针?有人对如何解决这个问题有任何建议吗?

编辑:更多信息,编译时出现运行时错误:

Exception in thread "main" java.lang.ClassCastException: Flight cannot be cast to java.lang.Integer

该错误是在我的 OrderedList 类的添加方法行之一中引发的,

while(current != null && (newFlight.getFlightNumber() > (Integer)current.getData())) {

这是调试器的屏幕截图,

Debugger

最佳答案

java.lang.ClassCastException: Flight cannot be cast to java.lang.Integer

这意味着您尝试将 Flight 转换为整数。航类不是整数,所以你不能这样做。

如果发生在这一行:

while(current != null && (newFlight.getFlightNumber() > (Integer)current.getData())) {

那么您要转换的内容就是 current.getData() 的结果。因此,current.getData() 返回了一个 Flight,并且您尝试将其转换为 Integer。我猜你的意思实际上是这样的:

while(current != null && (newFlight.getFlightNumber() > ((Flight)current.getData()).getFlightNumber())) {

关于java - 重新实例化对象而不丢失先前的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21518064/

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