探索Java深拷贝:从基础到高效实现
// 定义一个可复制的类
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
实例的副本,并验证了原对象和副本对象不是同一个对象实例。这是浅复制的一个基本例子,适用于不含有对其他对象引用的情况。
评论已关闭