You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何修改代码实现从Flight列表中查询单条航班记录

航班查询代码修正方案

原有代码存在的问题

  • 逻辑矛盾:方法入参为查询用的id,但判断条件用到了未声明的flightNumber变量,无法通过编译
  • 命名不规范:循环变量名和类名Flight重名,极易引发逻辑歧义
  • 类型转换错误:存在将List<Flight>集合强制转换为Flight对象的错误代码,运行时会直接抛出ClassCastException
  • 返回逻辑错误:即使找到匹配项,也没有返回当前匹配的航班对象,反而用id取下标对应元素,和查询需求完全不符
  • 无匹配场景没有处理:遍历结束找不到对应航班时直接调用flights.get(id),极易触发下标越界异常

调整后可运行代码

public Flight execute(FlightBookingSystem flightBookingSystem, int id)
        throws FlightBookingSystemException {
    List<Flight> flights = flightBookingSystem.getFlights();
    for (Flight flight : flights) {
        // 按航班ID匹配,如果需要按航班号查询,可修改匹配逻辑
        if (flight.getId() == id) {
            System.out.println(flight.getFlightNumber() + " 匹配到对应航班");
            return flight;
        }
    }
    // 无匹配时抛出业务异常
    throw new FlightBookingSystemException("未查询到ID为" + id + "的航班记录");
}

可选调整:按航班号查询

如果你需要按航班号而非ID查询,只需要修改两处即可:

  1. 方法入参从int id改为String flightNumber
  2. 判断条件替换为flight.getFlightNumber().equals(flightNumber)(字符串比对必须用equals不能用==)

内容的提问来源于stack exchange,提问作者Akbar Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 09:33:03