0

我想知道如何在以下情况下生成我的数组的克隆:

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() 抱怨。但我不确定如何最好地绕过它?

任何帮助将不胜感激。

4

2 回答 2

2

您需要使用提供的构造函数ArrayList

public synchronized List<TestObject> getAllTestObjects(){
    return new ArrayList<TestObject>(testList);        
}
于 2013-03-19T16:52:29.960 回答
0

这应该有效:

private static class TestObject {
}
private TestObject[] objects = new TestObject[10];
private List<TestObject> testList = 
  Collections.synchronizedList(new ArrayList<TestObject>(Arrays.asList(objects)));
于 2013-03-19T16:59:33.803 回答