使用 createAndStart 的目的

The purpose of using a createAndStart

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

MyBox b = new MyBox();
b.createAndStart(this);
add_myBoxes();
b.rectangle.setFillColor(randomColor());
b.setXYZ(0, 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, 0, zLoc);
zLoc += 20;

一切顺利

PS:AnyLogic 允许您使用许多既没有文档说明也没有自我解释的功能。但是,99% 的情况下您实际上并不需要它们 ;)