如何接收来自不同代理的消息

问题描述

我有4个具有举报行为的代理,每个代理在每个步骤之后将值发送给接收者代理,我希望此接收器将来自代理的接收值存储在4个数组中(每个数组用于一个发送者) 如何实现接收方代理行为?

解决方法

类似这样的东西

public class ReceiveMessageBehaviour extends CyclicBehaviour {
  private Map<AID,String[]> values = new HashMap<>();
  
  @Override
  public void action() {
      ACLMessage aclMessage = myAgent.receive();
      if(aclMessage == null){
          return;
      }
      String value = aclMessage.getContent();
      String[] aidValues = values.get(aclMessage.getSender());
      if(aidValues == null){
          aidValues = new String[]{value};
          values.put(aclMessage.getSender(),aidValues);
      } else {
          values.put(aclMessage.getSender(),ArrayUtils.add(aidValues,value));
      }
  }
}