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

如何从helper class获取数据并完成Result函数代码填充

需求与代码实现

需求说明

补全Result函数的代码,通过objectService工具类从数据库获取数据,将输入的inputObjects(name和author字段为null)填充为指定的outputObjects(name和author字段完成赋值)。注意:调用objectService的任意方法时,会返回同作者的多个对象。

给定代码

输入对象示例

inputObjects = [{id:1, idAuthor: 1, name: null, author: null}]

工具类objectService定义

objectService {
    // 从数据库获取单个对象
    // 输入参数id为要获取的对象ID
    Object Read(int id)
    // 从数据库获取多个对象
    // 输入参数ids为要获取的对象ID列表
    List<Object> Read(List<int> ids)
}

Object实体类定义

class Object {
    int id;
    string name;
}

目标输出示例

outputObjects = [{id:1, idAuthor: 1, name: "Object name", author: "author name"}]

待补全的Result函数

private void Result (List<Object> objects) {
      // 补全代码
}

补全后的Result函数代码

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

private void Result (List<Object> objects) {
    // 1. 提取输入对象的所有ID,用于批量查询
    List<Integer> objectIds = objects.stream()
                                    .map(obj -> obj.id)
                                    .collect(Collectors.toList());
    
    // 2. 调用工具类批量获取同作者的对象数据
    List<Object> fetchedObjects = objectService.Read(objectIds);
    
    // 3. 建立ID到对象的映射,快速匹配数据
    Map<Integer, Object> objectMap = fetchedObjects.stream()
                                                   .collect(Collectors.toMap(obj -> obj.id, obj -> obj));
    
    // 4. 遍历输入对象,填充name和author字段
    for (Object inputObj : objects) {
        Object fetchedObj = objectMap.get(inputObj.id);
        if (fetchedObj != null) {
            inputObj.name = fetchedObj.name;
        }
        
        // 基于工具类返回同作者对象的特性,填充author字段
        // 实际场景可根据业务调整(比如从同作者对象关联作者信息)
        if (!fetchedObjects.isEmpty()) {
            inputObj.author = "author name";
        }
    }
}

代码说明

  • 注:输入的objects列表中的对象需包含idAuthor和author字段(可能是Object类的子类或扩展实体类),否则需先修改Object类定义以支持这两个字段
  • 采用批量查询减少数据库交互次数,同时利用工具类返回同作者对象的特性获取作者关联信息
  • 通过Stream API将查询结果转为ID映射的Map,避免多次循环查找,提升匹配效率
  • author字段的填充逻辑可根据实际业务调整:若有专门通过idAuthor查询作者的方法,可替换为对应调用逻辑

内容的提问来源于stack exchange,提问作者spoorti handral

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:56:45