如何解决在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 举报,一经查实,本站将立刻删除。