如何在AnyLogic中设置变量统计存储区托盘数量?
在AnyLogic中获取Storage内托盘数量的解决方法
AnyLogic的Storage组件不支持直接使用count()函数,你可以通过以下几种实用方法获取当前存储的托盘数量:
调用Storage内置的
size()方法
这是最直接的方式,Storage组件自带size()方法,会返回当前存储的实体总数。假设你的Storage组件名为trayStorage,获取数量的代码如下:int trayCount = trayStorage.size();你可以将这段代码赋值给你的int变量,或者在需要展示/使用数量的地方直接调用
trayStorage.size()。通过实体集合统计(支持过滤)
如果需要统计特定类型的托盘,可通过getEntities()方法获取存储内的所有实体集合,再进行处理:// 获取所有托盘数量 int totalTrayCount = trayStorage.getEntities().size(); // 仅统计类型为Tray的实体数量 int targetTrayCount = trayStorage.getEntities().stream() .filter(entity -> entity instanceof Tray) .collect(Collectors.toList()) .size();绑定变量实现实时自动更新
若需要让int变量实时同步存储区的托盘数量,可利用Storage的事件回调:- 定义一个int类型变量,比如
currentTrayNum,初始值设为0。 - 在Storage的On entry事件中添加代码:
currentTrayNum++; - 在Storage的On exit事件中添加代码:
currentTrayNum--;
这样每次有托盘进出存储区时,变量会自动更新,无需手动调用统计方法。
- 定义一个int类型变量,比如
内容的提问来源于stack exchange,提问作者PaNDax ObEx
相关产品推荐
相关产品推荐

