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

在AnyLogic Main中的函数中引用“ this”

如何解决在AnyLogic Main中的函数中引用“ this”

我在Main中有一个名为myFunction函数,并返回一个布尔值:

if(this instanceof MyAgent) 
    return true;
else;
    return false;

功能FactoryAgent的流程块中被调用,它只是检查流过该流程块的代理是否为MyAgent类型。但是,当我调用函数时,出现以下错误Description: Incompatible conditional operand types Main and FactoryAgent.

直接在流程块的this instanceof MyAgent字段中输入On enter即可。如何在this中的函数中正确引用Main

解决方法

这是错误的...关键字“ this”是指您在其中调用函数的代理。

如果main中有一个流程块,则此“指向”是main,如果在代理FactoryAgent中使用它,则“ this”指向FactoryAgent ...这意味着它将始终返回false,因为“ this”永远不是MyAgent的实例

相反,您应该使用局部变量“ agent”并将其全部更改为

if(agent instanceof MyAgent) 
    return true;
else;
    return false;

如果要在任何地方调用此函数,则需要使用一个参数来调用它,该参数是流经该过程的代理。如果它可以是多种类型的代理,则参数将是代理类型,或者可能是对象类型。

如果您不知道函数具有参数的含义,或者您不知道可以使用名为agent的局部变量,我可以解释一下,但这是非常基础的术语,我以为你知道

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