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

AnyLogic码垛模型运行报错:Pallet与PalletLayer类型转换异常求助

问题:AnyLogic码垛模型托盘进入工位时抛出ClassCastException

搭建带输送机的分拣与码垛模型,参考Palettizing Conveyor示例关联模块后,托盘进入码垛工位/节点时模型崩溃,错误信息:

Exception during discrete event execution
class sorting_conveyors.Pallet cannot be cast to class sorting_conveyors.PalletLayer (sorting_conveyors.Pallet and sorting_conveyors.PalletLayer are in unnamed module of loader 'app')
java.lang.ClassCastException: class sorting_conveyors.Pallet cannot be cast to class sorting_conveyors.PalletLayer (sorting_conveyors.Pallet and sorting_conveyors.PalletLayer are in unnamed module of loader 'app')
at sorting_conveyors.Main$22.agentLocation(Main.java:1)

排查与解决思路

  • 检查代理类型匹配:
    示例模型中PalletLayer是承载托盘的代理类,你的模型可能误将Pallet直接传入了需要PalletLayer的逻辑(比如码垛工位的入口触发、位置关联代码)。确认所有涉及托盘进入码垛工位的逻辑,是否正确用PalletLayer包裹Pallet,而非直接传递Pallet对象。
  • 核对模块关联配置:
    检查码垛相关模块(如Palletizing Station、Conveyor节点)的输入代理类型设置,确保与模型中的代理层级一致。比如示例要求输入PalletLayer,但你绑定成了Pallet,导致类型转换失败。
  • 查看自动生成的代码逻辑:
    错误指向Main$22.agentLocation(Main.java:1),在AnyLogic中打开模型>Java代码,找到对应的agentLocation方法,定位哪里出现了Pallet转PalletLayer的强制转换,修改为正确的代理类型调用(比如从PalletLayer中获取内部的Pallet,而非反过来)。
  • 清理重复类定义:
    检查模型中是否存在重复的Pallet或PalletLayer类(比如复制示例模块时重复导入),导致类加载冲突。删除冗余的代理类定义,确保项目中只有一套正确的托盘层级类。
  • 重新关联示例模块:
    如果是复制示例模块时出现的配置错乱,尝试删除现有码垛模块,重新从AnyLogic示例库中导入Palettizing Conveyor的相关组件,逐步适配你的模型,每一步测试托盘流转是否正常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:45:09