【发布时间】:2014-07-19 14:27:37
【问题描述】:
如何修改该类:
public class Event<T extends EventArgs> {
private final List<Listener<T>> listeners;
public Event() {
listeners = new ArrayList<>();
}
public void invoke(T args) {
for (Listener<T> l : listeners)
l.onEvent(args);
}
public void addEventListener(Listener<T> l) {
listeners.add(l);
}
public void removeEventListener(Listener<T> l) {
listeners.remove(l);
}
}
所以addEventListener() 和removeEventListener() 将被推迟到invoke() 结束后执行(所以我不会得到ConcurrentModificationException)?
【问题讨论】:
标签: java concurrency