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

如何在Anylogic的存储系统中访问指定存储单元

解决方法

首先你的代码存在3处明显问题,按如下步骤修改即可:

  • 语法错误:你定义的storageSystem本身就是包含3个存储对象的集合,不需要额外加Storages字段,原代码中间的空格和多余的Storages会直接触发语法报错
  • 参数类型错误:AnyLogic的Storage类getSlot方法的三个入参均为整数,依次对应通道编号、货位编号、层级编号。如果你代码中的Bay1没有提前定义为存储货位编号的int变量,直接传入会报错
  • 缺少逻辑承接:当前代码只写了访问货位的表达式,没有赋值给变量或者执行后续操作,不会产生任何实际效果

正确代码示例

如果要获取storageSystem中第一个存储单元的0通道、1号货位、0层级的货位,写法如下:

// 用Slot类型变量承接获取到的目标货位
Slot targetSlot = storageSystem[0].getSlot(0, 1, 0);

如果你确实有提前定义Bay1为int类型的货位编号变量,可以用如下写法:

// 假设你已经提前定义过int Bay1 = 1;
Slot targetSlot = storageSystem[0].getSlot(0, Bay1, 0);

注意事项

  • 如果你定义的storageSystem是ArrayList<Storage>类型而非数组,需要把storageSystem[0]替换为storageSystem.get(0)来获取第一个存储单元
  • 所有编号默认从0开始计数,不要超出你在存储单元中定义的通道、货位、层级数量上限,否则会抛出越界异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:27:04