1
我有hols聽衆的靜態列表一類,像這樣:限制移除元素,而迭代
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
?
另一種方法是使用'toArray'迭代'ArrayList'的副本 –