0
我想知道我怎么能在以下情况下产生我的数组的一个副本:Java返回一个ArrayList的克隆包裹在collections.synchronizedlist
private List<TestObject> testList = Collections.synchronizedList(new ArrayList<TestObject>());
....
public synchronized List<TestObject> getAllTestObjects(){
return testList.clone();
//I have tried casting to List<TestObject>
}
对于List没有定义clone(),这是呻吟。但我不确定如何最好地解决它?
任何帮助将不胜感激。
是synchronized'这里需要'? – ataulm 2013-08-02 15:41:13
是的,因为复制构造函数在给定列表上运行一个循环。看到我的相关答案[这里](http://stackoverflow.com/a/17616858/2071828) - 这是一个“集合”,但同样的逻辑成立。 – 2013-08-02 15:43:05
复制列表时,是否可以安全地同步方法执行? AFAIK,你应该在testList本身上进行同步。 – 2015-12-14 09:40:46