使用 createAndStart 的目的

问题描述

您好:我正在研究将代理添加到 main 中用户指定位置的模型。为简单起见,代理是 MyBox。我在 main 中有一个按钮控件,可以执行以下操作。

MyBox b = new MyBox();
b.createAndStart(this);
add_myBoxes();
b.rectangle.setFillColor(randomColor());
b.setXYZ(0,zLoc);
zLoc += 20;

我偶然发现了一个解决方案,但在添加 b.createAndStart(this) 之前,我一直收到 NullPointerException。有人可以提供有关此方法的用途的见解吗? AnyLogic 帮助说它将此代理的所有者分配给模型的顶级代理,我假设在这种情况下是主要的。如果我在 main 中将代理添加myBoxes 人口中,为什么需要这样做。

解决方法

通常情况下,您不使用该功能。 add_myBoxes(...) 函数为您完成所有这些工作,因此根本不需要使用它。

因此,在您的情况下,不要使用它,但也不要使用您的自定义创建者 new MyBox()

简单使用

MyBox b = add_myBoxes();
b.rectangle.setFillColor(randomColor());
b.setXYZ(0,zLoc);
zLoc += 20;

你很高兴

PS:AnyLogic 允许您使用许多既没有记录也没有自我解释的函数。但是,99% 的情况下您实际上并不需要它们 ;)