2016-10-03 5 views
0

Ich erstelle einen Agenten basierend auf einem anderen Code. Der ursprüngliche Agent wird in einem Verzögerungsblock verarbeitet, und ich möchte Kopien erstellen, bei denen nur die ID geändert wird und die Methode in einem Enter-Block ausgeführt wird.Iterate über Agentenparameter

Um Informationen aus dem ursprünglichen Agenten kopieren kann ich nicht scheinen, einen besseren Weg zu finden, als die einzelnen Parameter wie in angeben:

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

und so weiter.

Gibt es eine Möglichkeit, über Agentenparameter zu iterieren, um diese Aktion zu verbessern?

Vielen Dank im Voraus, Luís

Antwort

0

ich es geschafft, mein Problem zu lösen, und ich bin Entsendung die Antwort wie andere Leute es in der Zukunft konfrontiert sein könnten. Es ist etwas einfaches, das ich schon versucht habe, aber mit einem Typ-Casting-Problem.

Die Codestruktur ist wie folgt:

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)); 

Ich fand, dass myAgent prod = new MyAgent() mit funktionierte nicht. Das Duplikat muss in eine Population eingefügt werden, sodass ich eine anfänglich leere Population namens myAgents erstellt habe und dort wo ich das Duplikat hinzufüge.