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

如何修复人道主义物流系统中仓库可用性更新的Java代码问题?

问题修复方案

问题根源

你注释掉的代码错误地直接操作仓库列表main.magazzinis,而非针对卡车要提取物资的目标仓库更新可用性。main.magazzinis是List<Magazzini>类型,不存在直接的cap属性,所以代码无法生效。

修复后的代码

List <Magazzini> subsetlist = findAll(main.magazzinis, w->w.capacita>0);
List <Magazzini> sortmag = new ArrayList<Magazzini>();
List <Double> distance = new ArrayList<Double>();
sortmag = subsetlist;
System.out.println(sortmag);
for (Magazzini m : subsetlist)
{
    m.distance = distanceTo(m); 
}
sortmag = sortAscending(sortmag, p-> p.distance);

// 修复:获取选中的目标仓库,更新其可用性(运力为2,可替换为变量)
Magazzini targetWarehouse = sortmag.get(0);
// 若你定义的属性名是cap,就替换成targetWarehouse.cap = targetWarehouse.cap - 2;
targetWarehouse.availability = targetWarehouse.availability - 2;

moveTo(targetWarehouse); 
System.out.println(sortmag);
partenza = time();

关键说明

  • 通过sortmag.get(0)拿到排序后最近的、有可用物资的仓库(即卡车前往的目标仓库)
  • 直接修改该仓库对象的availability(或你定义的cap)属性即可,因为targetWarehouse是main.magazzinis列表中的对象引用,修改后会同步到原列表的对应仓库
  • 如果卡车运力不是固定值2,建议定义变量(比如int truckCapacity = 2;)替代硬编码数值,提升代码灵活性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:27:25