总是出现swarm.SignatureNotFoundException错误
本帖最后由 generate2000 于 2010-11-11 10:46 编辑本人swarm菜鸟,有个问题请教下下.swarm2.2,jdk1.6update21
以下是actiongroupdemo程序,在执行时出现以下错误.请各位高手帮忙解决一下,不胜感激.
swarm.SignatureNotFoundException
at swarm.Selector.<init>(Selector.java:76)
at ActionGroupDemo.<init>(ActionGroupDemo.java:37)
at ActionGroupDemo.main(ActionGroupDemo.java:67)
import swarm.objectbase.SwarmImpl;
import swarm.objectbase.Swarm;
import swarm.activity.ScheduleImpl;
import swarm.activity.Activity;
import swarm.activity.ActionGroupImpl;
import swarm.collections.ListImpl;
import swarm.defobj.Zone;
import swarm.Globals;
import swarm.Selector;
import swarm.activity.ActionGroup;
class Agent {
char id;
Agent(char id) {
this.id = id;
}
public void agentStep() {
System.out.println(id + ":" + Globals.env.getCurrentTime());
}
}
public class ActionGroupDemo extends SwarmImpl {
ScheduleImpl schedule;
ActionGroupImpl actionGroup;
ListImpl list;
char Id = 'a';
ActionGroupDemo(Zone aZone) {
super(aZone);
list = new ListImpl(aZone);
swarmSetp();
actionGroup = new ActionGroupImpl(aZone);
schedule = new ScheduleImpl(aZone);
try {
Selector agentSel = new Selector(Agent.class, "agentStep", false);
Selector swarmSel = new Selector(ActionGroupDemo.class,"swarmSetp", false);//问题就出现在这一行
actionGroup.createActionForEach$message(list, agentSel);
actionGroup.createActionTo$message(this, swarmSel);
schedule.at$createAction(0, actionGroup);
schedule.at$createAction(1, actionGroup);
schedule.at$createAction(2, actionGroup);
} catch (Exception e) {
e.printStackTrace(System.err);
//System.out.println(e);
System.exit(1);
}
}
private void swarmSetp() {
list.addLast(new Agent(Id));
Id++;
}
public Activity activateIn(Swarm context) {
super.activateIn(context);
schedule.activateIn(this);
return getActivity();
}
public static void main(String[] args) {
Globals.env.initSwarm("ActionGroupdemo", "1.1", "s@s", args);
Swarm swarms = new ActionGroupDemo(Globals.env.globalZone);
swarms.buildObjects();
swarms.buildActions();
swarms.activateIn(null).run();
}
} 你的函数swarmStep 不能为private 要是public才行。
页:
[1]