探索Java深拷贝:从基础到高效实现
warning:
这篇文章距离上次修改已过438天,其中的内容可能已经有所变动。
// 定义一个可复制的类
public class CopyableItem implements Cloneable {
private String name;
public CopyableItem(String name) {
this.name = name;
}
// 实现浅复制
@Override
public CopyableItem clone() {
try {
return (CopyableItem) super.clone();
} catch (CloneNotSupportedException e) {
throw new AssertionError(); // Can never happen
}
}
}
// 使用上述类进行深复制
public class Main {
public static void main(String[] args) {
CopyableItem originalItem = new CopyableItem("Original");
CopyableItem copiedItem = originalItem.clone();
System.out.println(originalItem == copiedItem); // 输出 false
}
}这个代码示例展示了如何实现一个简单类的浅复制。CopyableItem 类实现了 Cloneable 接口并覆盖了 clone() 方法。在 main 方法中,我们创建了一个 CopyableItem 实例的副本,并验证了原对象和副本对象不是同一个对象实例。这是浅复制的一个基本例子,适用于不含有对其他对象引用的情况。
评论已关闭