java - 在 AnyLogic 中动态评估/执行字符串
问题描述
有没有办法通过评估/执行字符串来动态检查和设置 AnyLogic 中代理的参数?
我的情况:
- 我有编号从 0 到 200 的停车场,分别命名为 parkingLot0、parkingLot1、...、parkingLot200(每个容量为 1)。
- 我有一个名为 DetachedTrailer 的代理。
- 我想为到达的 DetachedTrailer 找到一个空的停车位,并将 agent.parking 设置为该停车位。
- 我不想一个接一个地手动执行此操作,而是希望有一个短循环来解决问题。
我尝试使用 executeExpression,但它在离散事件执行期间抛出错误说 *Exception:
根:
无效的*
请看下面截图的函数体。
不幸的是,文档没有太多关于 executeExpression 的信息。任何帮助,将不胜感激。
解决方案
为了使表达式,您需要执行以下操作:
把你所有的停车位放在一个集合中,在这个例子中,我将把网络本身放在一个变量中
该变量将是 RoadNetwork 类型,并将具有初始值 roadNetwork...让我们将此变量称为 rn
然后在表达...
CodeValue myCode = new CodeValue(this,"rn.getParkingLots().get(0).nFree()");
这将起作用。你可以对parkingLot0做同样的事情,把它放在一个名为pl0的变量中,类型为ParkingLot,初始值为parkingLot0,表达式将如下所示:
CodeValue myCode = new CodeValue(this,"pl0.nFree()");
这也可以
推荐阅读
- powershell - 使用Powershell重命名当前目录中包含文件和子目录的所有文件夹名称
- javascript - Create div scrollable elements according to the number of elements in an String array
- php - PHP PDO 未在 Web 上发现 sqlsrv 驱动程序,但可在 cli 上运行
- kotlin - 如何在 Kotlin 中使用 celery(java 版)
- python - TypeError:“WebElement”对象不可调用
- c# - 统一同步玩家位置(镜像)
- c++ - 致命错误:opencv2/core.hpp:没有这样的文件或目录 Ubuntu 和 Visual Studio Code
- angular - 重定向到带有 SAML 响应的回调 url 时出现错误无法以角度发布
- flutter - Flutter、Dart、FireBase:[错误:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:无效参数 - onTap GestureDetcture
- python - 使用 Python 将 LaTeX 字符串与内联方程拆分