微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在AnyLogic中访问“代理”类型的参数的值

如何解决在AnyLogic中访问“代理”类型的参数的值

我正在处理的模型如下设置。它包含四种代理类型:

  1. 患者
  2. 小型医院
  3. 中医院
  4. 大医院

。所有这些代理都位于Main中。将SmallHospital和MediumHospital代理通过link to agent objects(例如mediumHospitalLinkbigHospitalLink)通过网络连接到BigHospital。

生成后,患者会通过患者中的状态图移动到最近的医院代理商(无论类型如何,都使用患者中的this功能)。患者移动到的医院代理存储在患者的名为p_myFirstHospital的参数中。 This parameter的类型为“代理商”,因为我事先没有将该代理商要转移到的医院类型。这样不会导致错误,并且可以按预期运行。

enter image description here

但是,我想过一会儿将患者代理人转移到第二家医院。如果患者当前在小型医院中,则应移至该小型医院所在的中型医院,同样,如果患者在中型医院中,则应移至该中型医院所在的大医院中。>

我希望我能够从Patient内部调用以下代码来访问这些代理: p_myFirstHospital.mediumHospitalLink.getConnectedAgent();

或通过我创建的a simple function。它应该从Link to agents中存储的医院代理商中的p_myFirstHospital中检索代理商。

不幸的是,这不起作用。编译器返回以下错误消息: Description: smallHospitalLink cannot be resolved or is not a field. Location: model/Patient/f_DetermineSecondHospital - Function

我是否缺少Java或AnyLogic的细微之处?非常欢迎您的帮助和建议。

解决方法

那是因为p_myFirstHospital的类型是Agent

因此,您需要使Java变魔术如下:

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。