Java返回副本以隐藏未来的更改

Leh*_*ane 5 java deep-copy cloning

在Java中,假设您有一个包装ArrayList对象(或任何集合)的类.

您将如何返回其中一个对象,以致调用者将看不到对ArrayList中对象的任何未来更改?

即你想要返回对象的深层副本,但你不知道它是否是可克隆的.

Gis*_*shu 4

将其变成规范:
- 对象需要实现一个接口才能被允许进入集合类似ArrayList<ICloneable>()

那么你就可以放心,你总是会进行深拷贝——接口应该有一个保证返回深拷贝的方法。

我认为这是你能做的最好的事情。