自己写的死循环,含泪你也得看完。
首先分析下run。
public void run() {
while (eventList.size() > 0) {
for (Event e : new ArrayList
System.out.println(e);
e.action();
eventList.remove(e);
}
}
}
这个双层的循环,你的意思大概是 执行删除这个event。但你这个for (Event e ...这个可是在创建对象。相当于new。
再来看event,里面有俩方法,还是被类Bell 继承重写了。那自然不停的执行bell里的action,
abstract class Event {
public Event() {
}
public void action() {
}
}
再看action ,new个自己进去。new在堆中新建引用。
public void action() {
addEvent(new Bell());
}
再回到你的run方法,while下。for里面。你删一个加一个删一个加一个...........无休止。另外for (Event e : new ArrayList