如何深拷贝 org.apache.cxf.jaxrs.ext.multipart.Attachment
时间: 2023-09-02 07:09:30 浏览: 125
要深度复制 `org.apache.cxf.jaxrs.ext.multipart.Attachment` 对象,可以使用以下代码:
```
import org.apache.cxf.jaxrs.ext.multipart.Attachment;
public static Attachment deepCopyAttachment(Attachment attachment) throws IOException {
Attachment copy = new Attachment(attachment.getContentId(),
attachment.getObject(),
attachment.getHeaders());
ByteArrayOutputStream baos = new ByteArrayOutputStream();
attachment.getDataHandler().writeTo(baos);
copy.setDataHandler(new DataHandler(new ByteArrayDataSource(baos.toByteArray(), attachment.getContentType())));
return copy;
}
```
该方法创建一个新的 `Attachment` 对象,并使用原始对象的内容 ID、对象和标头来初始化它。然后,它将原始对象的数据处理程序中的数据写入 `ByteArrayOutputStream`,并使用它来创建新的数据处理程序。最后,它返回新的 `Attachment` 对象。
需要注意的是,这个方法假设 `Attachment` 对象已经被完全初始化,包括数据处理程序中的数据。如果原始对象没有被完全初始化,那么复制的对象也可能是不完整的。
阅读全文