【问题标题】:Anylogic - Getting Resource Pool from a seized ResourceAnylogic - 从占用的资源中获取资源池
【发布时间】:2019-10-27 23:29:20
【问题描述】:

我有一个可以从两个资源池之一中获取资源的服务块。在该块中操作的“占用单元”部分,我想确定代理来自哪个资源池。

我尝试为资源池创建一个定制的代理类型,该类型可以附加一个变量,然后我可以通过“unit.MySpecies”之类的方式读取该变量,但得到“MySpecies 无法解析或不是字段”。

我的 Java/AnyLogic 技能非常基础,因此我们不胜感激。我看到了获得个人资源利用的答案,但我希望这个问题更简单一个数量级,并且只是正确的单词和语法的一个例子。

【问题讨论】:

    标签: java anylogic


    【解决方案1】:

    你必须正确使用Java,错误提示格式错误:

    1. 您的变量必须是“ResourcePool”类型,请参见下面的屏幕
    2. 您必须在资源池的“on capture”中正确设置为
    3. 在“占用单元”服务代码框中,您必须正确访问它。就我而言,它看起来像unit.myPool

    也许您在捕获时也写错了代码。如果要检查资源的来源,请确保它看起来像:

    if (unit.myPool.equals(myResourcePool)...
    

    其中“myResourcePool”是资源池的实际名称。

    【讨论】:

    • 理想情况下,我宁愿不必创建定制代理。我可以在“占用单元”框中使用单元的固有属性来获取它的池名称吗?就像 unit.getPoolName() 如果它存在的话。
    • 实际上你至少可以做你想做的一部分:如果你定义和使用自定义资源类型(从 AnyLogic 调色板模块“流程建模库/资源类型”创建),那么这个类型将自动为您提供函数“resourcePool() - 返回此单元所属的 ResourcePool 块”。然后您可以像这样访问它: ((MyResource)unit).resourcePool() 其中 MyResource 是您的自定义资源类型。因此,至少您不必添加额外的字段“myPool”,但您不会创建自己的资源类型...
    猜你喜欢
    • 2021-09-04
    • 1970-01-01
    • 2020-09-22
    • 2020-11-09
    • 2021-06-20
    • 2021-10-18
    • 2019-08-05
    • 2018-12-22
    • 2021-09-15
    相关资源
    最近更新 更多