我正在阅读有关 Hiberante 中所谓的 UserType
的内容,它声明了 deepCopy(Object)
方法。作者建议我们对 immutable
类使用以下实现:
为什么?我认为deepCopy实现如下:Because
MonetaryAmount
is an immutable class, the deepCopy() method returns its argument.
public Object deepCopy(Object value) throws HibernateException {
return value;
}
实际上是一个浅副本。我错过了什么?
最佳答案
不可变对象(immutable对象)不能改变它的状态。所以如果你返回相同的对象并不重要。因为无论如何都无法对其进行修改。因此,当根本没有没有副本时,它实际上就像一个deepCopy
。
让我们以字符串
为例。
String s1 = "hello";
String s2 = new String(s1);
String s3 = s1;
无论您对任何变量执行什么操作,都不会影响其他两个变量。
关于java - 了解 DeepCopy 概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31581288/