如何在java中克隆对象

Pra*_*V S 3 java java-ee

org.apache.cxf.jaxrs.ext.multipart.Attachment attachments=null;

List<Attachment> clone = new ArrayList<Attachment>(attachments.size());
for(Object item: attachments) 
clone.add((Attachment)item.clone());//The method clone() from the type Object is not visible
Run Code Online (Sandbox Code Playgroud)

我想克隆该List<Attachment> clone对象,但它说来自Object类型的方法clone()是不可见的

avi*_*iad 5

不要使用Java标准clone方法Object.至少在您阅读Josh Bloch在他的" 有效Java"一书中所说的关于克隆的内容之前.

在这种情况下,你需要做一个深层复制,即创建一个空ArrayListAttachment对象(你做了)并复制每个对象的所有字段的Attachment.