我只是从基于JADE代理的建模开始。我的hello world示例看起来像这样-

public class HelloWorldAgent extends Agent {
 protected void setup() {
  System.out.println("Hello World! My AID is "+this.getAID());
 }
}


我这样称呼外面-

public class Main {
  public static void main(String[] args) {
    HelloWorldAgent helloWorldAgent = new HelloWorldAgent();
    helloWorldAgent.setup();
  }
}


我看到的输出是-

Hello World! My AID is null


现在,我的问题是如何设置AID,因为只有get方法,而没有“ set”方法。由于不可用,我怀疑AID是自动分配的。是这样吗?如果是,如何确定座席获得AID?谢谢。

最佳答案

我建议您首先创建一个容器。您可以在主要方法中尝试这种方式:

public static void main(String[] args) throws Exception {
    ProfileImpl p = new ProfileImpl();
    p.setParameter(Profile.MAIN_HOST, "localhost");
    p.setParameter(Profile.GUI, "true");

    ContainerController cc = Runtime.instance().createMainContainer(p);

    AgentController ac = cc.createNewAgent("myAgent", "HelloWorldAgent", new Object[] { });
    ac.start();
}


在这种情况下,getAID()。getLocalName()将返回“ myAgent”。

10-05 21:08
查看更多