我只是从基于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”。