类型不匹配:无法从 Agent 转换为 Fellow

Type mismatch: cannot convert from Agent to Fellow

在我的模型中,不同的从业者在一次访问中多次去看病人。我正在努力确保同一个人在多次被抓获和释放后多次探视病人。我继续收到此类型不匹配。类型 Patient 是通过模型推送的代理,类型 Fellow 属于 3 名研究员的资源池。

您必须确保 Patient 代理类型中的变量 fellowFellow 类型。

您尝试将 Fellow 存储在 Patient.fellow 变量中,但该变量不是 Fellow 类型,导致了问题。

几点注意事项

  1. 您的屏幕截图是名为 Fellows 的资源池的屏幕截图 - 但您将单位类型营销为 Patient - 如果您希望资源池包含 [=11] 类型的代理,它应该是 Fellow =] 并让患者流过流程并抓住 Fellows

  1. on seize 代码中,您有两个可以使用的局部变量

Unit - 是 Fellow,来自这个资源池的资源单位 agent - 占用该单元的代理(可以是任何东西)所以你需要将它转换成你认为它会是什么.. AnyLogic 不能这样做或者你不知道什么代理类型会占用它

  1. 您的自定义资源选择也会随之改变

我们需要再次将代理转换为 Patient


注意 - 请记住,如果除 Patient 之外的任何其他 agent 抓住了 fellow,此逻辑将抛出强制转换 class 异常错误。