迭代代理的参数

时间:2016-10-03 15:44:32

标签: java loops parameters agent anylogic

我正在通过代码创建基于另一个代理的代理。原始代理处于正在处理的延迟块中,我想创建只有id才会更改的副本,并在Enter块中执行方法。

为了从原始代理复制信息,我似乎找不到比指定每个参数更好的方法:

newAgent.color = original.color;
newAgent.component = original.component;
newAgent.geometry = original.geometry;
...
newAgent.LastParameter = original.LastParameter;

等等。

有没有办法迭代代理参数来改进此操作?

提前谢谢你, 路易斯

1 个答案:

答案 0 :(得分:0)

我设法解决了我的问题,并且我发布了答案,因为将来其他人可能会面对它。这是一个简单的事情,我已经尝试过,但有一个类型转换问题。

代码结构如下:

add_myAgents();
for(String p : agent.getParameterNames())
{
    myAgents.get(myAgents.size()-1).setParameter(p, agent.getParameter(p), true);
}
enter.take(myAgents.get(myAgents.size()-1));

我发现使用myAgent prod = new MyAgent()无效。副本必须插入一个群体中,因此我创建了一个名为 myAgents 的空洞群体,并在那里添加了副本。