我创建了一个GUI设计的代理MyBatch。我想知道是否可以为此代理定义一个构造函数。
更具体地说,我需要在fluidToAgent
中使用它,我希望新的Agent成为MyBatch的类型。
但是
New agent = new MyBatch()
给我一个“空”的MyBatch,我想在其中添加一些类似的东西
New agent = new MyBatch(batch.variable_1, batch.variable_2, etc...)
以便我可以使用当前批处理中包含的数据初始化New agent
谢谢
答案 0 :(得分:0)
最简单的方法是将参数添加到GUI构造的代理中。然后
new agent = new MyBatch( param1, param2...)
您可以转到代理属性窗口以查看应传递参数的顺序。这将传递并设置参数,然后可以使用OnStartUp操作执行您想要的任何逻辑。
要注意的一个重要事项是,如果通过new MyBatch()创建AnyLogic代理,则还必须调用 createAndStart(anyAgent)来初始化画布上的任何对象。
如果您使用大量MyBatch,然后使用
new agent = add_populationMyBatch( param1, param2, ...)
您不必担心调用createAndStart
另一种替代方法是在MyBatch中拥有自己的初始化功能。您可以通过new agent = new MyBatch()创建代理,然后调用agent.init(传入的变量)。在init中,您可以调用createAndStart以及您想要的任何其他代码。