首页 > 解决方案 > 使用 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 帮助说它将这个代理的所有者分配给模型的顶级代理,我假设在这种情况下是主要的。如果我已将代理添加到myBoxes主要的人口中,为什么有必要这样做。

标签: anylogic

解决方案


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

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

只需使用

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

你可以走了

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


推荐阅读