首页 > 解决方案 > 将字符串与代理群体匹配

问题描述

我正在尝试创建一个从数据库中搜索字符串(即操作)的事件,该事件返回能够执行该操作的相应设备。但是,当我尝试将生成的设备添加到设备类型的 col_EquipmentToDo 集合中时,它会给出错误消息“不兼容的操作数类型 Main.equipments_Population 和字符串”。我试图将来自数据库(即设备)的结果字符串与我最初创建的人口相匹配,但它不起作用。

继承人的代码:

int numOperationsToDo = col_OperationsToDo.size();

for (int i=0; i<numOperationsToDo; i++) { ReqOperation=col_OperationsToDo.get(0);

variable=selectFrom(toperation_per_tool)
.where(toperation_per_tool.operation.eq(ReqOperation))
.uniqueResult(toperation_per_tool.tool_reference);

col_MachinesToDo.addLast(main.pop_equipments==variable);

}

标签: anylogic

解决方案


您的数据库条目是一个字符串(即,诸如“myEquipment12”之类的字面意思)。你的收藏不是。它需要设备类型的元素,即该类型的实际代理。

因此,要么将集合更改为字符串列表,要么使用数据库中的字符串,从中创建设备代理(或找到与其匹配的现有代理)并将其添加到您的集合中。

使用哪一种取决于您的型号。

PS:在您问之前:您不能将设备代理存储在数据库中,只能存储字符串名称:)


推荐阅读