我有一个包含静态侦听器列表的类,如下所示:
public class StaticFoo{
public static interface ActionInterface{
void onAction();
}
private static ArrayList<ActionInterface> sList = new ArrayList();
public static ArrayList<ActionInterface> getList(){
return sList;
}
public static void addAction(ActionInterface action){
sList.add(action);
}
public static boolean removeAction(ActionInterface action){
return sList.remove(action);
}
}
我现在的问题是:如果我遍历此列表并调用该onAction
接口的方法,如何防止其中一个侦听器正在调用StaticFoo.removeAction(this)
,这将触发ConcurrentModificationException
?