如何从消息对象内容中提取字段(Jade)

时间:2016-02-10 16:27:51

标签: java agents-jade

我在JADE中遇到了对象类型的问题。为了将对象消息发送到另一个代理,我使用方法ACLMessage.setContentObject。但是,当我想从收到的消息中提取特定的值/字段时,就会出现问题。

另外在发送代理中,我创建了类,以便可以发送带有对象内容的消息:

class BusData implements java.io.Serializable
{
public Double current;
public Double power1;
public Double power2;
public Double voltage;
}

接收代理有以下代码(部分):

data = MessageTemplate.MatchConversationId("measure");
ACLMessage data1 = receive(data); //receiving data with defined template

    if (data1!=null) {      

            for (int i = 0; i < Agents.length; ++i) {           

                try {
                    Data1 received_data = (Data1)data1.getContentObject();  
                    } catch (UnreadableException e) {
                        e.printStackTrace();}

                      //Serializable so = (Serializable)data1;
                      //System.out.println(Agents[i].getName()); //from whom received             

                      if (data1!=null) { 
                          System.out.println(getLocalName()+ " Info from " + data1.getSender().getName()); //from whom received   
                      }
            }                     
    }

我应该在接收代理中添加类似的类,例如BusData1与类似的变量一样,在发送代理时才能提取消息内容?我是Java的新手,所以我要求理解。

每个提示都会有所帮助。 此致

0 个答案:

没有答案