如何解决在AnyLogic中访问“代理”类型的参数的值
我正在处理的模型如下设置。它包含四种代理类型:
- 患者
- 小型医院
- 中医院
- 大医院
。所有这些代理都位于Main中。将SmallHospital和MediumHospital代理通过link to agent objects(例如mediumHospitalLink
和bigHospitalLink
)通过网络连接到BigHospital。
生成后,患者会通过患者中的状态图移动到最近的医院代理商(无论类型如何,都使用患者中的this功能)。患者移动到的医院代理存储在患者的名为p_myFirstHospital
的参数中。 This parameter的类型为“代理商”,因为我事先没有将该代理商要转移到的医院类型。这样不会导致错误,并且可以按预期运行。
但是,我想过一会儿将患者代理人转移到第二家医院。如果患者当前在小型医院中,则应移至该小型医院所在的中型医院,同样,如果患者在中型医院中,则应移至该中型医院所在的大医院中。>
我希望我能够从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 举报,一经查实,本站将立刻删除。