2016-10-03 77 views
0

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

为了从原来的代理复制信息,我似乎无法找到比指定每个参数作为一个更好的办法:

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

等。

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

谢谢你在前进, 路易斯

回答

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的空白种群,并且存在添加副本的位置。