在 Java 中,假设您有一个包装 ArrayList
(或任何集合)对象的类。
您将如何返回这些对象之一,以便调用者看不到 ArrayList 中对该对象所做的任何 future 更改?
即您想返回对象的深拷贝,但不知道它是否可克隆。
最佳答案
将其转化为规范:
-对象需要实现一个接口(interface)才能被允许进入集合
类似于 ArrayList<ICloneable>()
那么你就可以放心,你总是做深拷贝——接口(interface)应该有一个保证返回深拷贝的方法。
我认为这是您能做的最好的事情。
关于Java 返回副本以隐藏 future 的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29820/