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

传入多银行数据后接口仅返回单条结果的技术求助

问题分析与修复方案

代码里的核心问题

  • 重复调用res.listIterator().next():每次调用next()都会移动迭代器指针,两次调用会取列表里的前两个元素,但只赋值给一个BankExcel对象,后续元素完全没处理,还会出现第一个银行名称+第二个银行地址的错误组合。
  • 未遍历全部银行数据:代码没有循环处理传入的List<Banks>,只错误处理了前两个元素,根本没生成多个银行对象。
  • 错误使用Collections.singletonList():这个方法只能创建包含单个元素的不可变列表,而且你还错误地把bankDetails自身添加进去,完全不符合多银行数据的需求。
  • 缺少返回语句:原方法没有return,无法把结果返回给调用方。

修复后的代码

public BankDetails getRes(List<Banks> res) {
    BankDetails bankDetails = new BankDetails();
    List<BankExcel> bankList = new ArrayList<>();
    
    // 遍历所有传入的银行数据,逐个生成BankExcel对象
    for (Banks bankData : res) {
        BankExcel bank = new BankExcel();
        bank.setName(bankData.getName());
        bank.setAddress(bankData.getAddress());
        bankList.add(bank);
    }
    
    // 将所有银行对象的列表设置到BankDetails中
    bankDetails.setVal(bankList);
    return bankDetails;
}

修复说明

  1. 用for-each循环遍历整个res列表,确保每一条银行数据都被处理成对应的BankExcel对象。
  2. 用ArrayList收集所有生成的银行对象,支持存储多个元素。
  3. 修正setVal的赋值逻辑,把收集好的银行列表传入,而非错误地传入bankDetails自身。
  4. 添加return语句返回最终的BankDetails对象,保证接口能返回完整的多银行数据。

内容的提问来源于stack exchange,提问作者Tanushree Roy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:20:28