我有这样的方法:
public static void normalizeMessages(ArrayList<Message> messages){
synchronized (messages) {
Collections.sort(messages, new Comparator<Message>() {
@Override
public int compare(Message lhs, Message rhs) {
return lhs.getId().compareTo(rhs.getId());
}
});
}
// do something with sorted list
}
我的ArrayList
可以在其他线程的某处修改(添加,删除项目),因此我必须使用synchronized
。
但我不确定这种方式是否正确,因为我收到来自Android studio
的警告:同步方法参数'消息'
我是否需要Collections.synchronizedList
使用ArrayList
&amp;在任何代码中使用synchronized
修改此列表?
答案 0 :(得分:0)
您可以将此message
参数声明为类中的全局变量,并将其设为volatile
。因此,所有线程都将具有相同的对象副本。因此,它将带来{{1 }}。