java - java中的clone()是浅拷贝吗?

标签 java deep-copy shallow-copy

java中的clone()是浅拷贝吗?

Eventually this gets to the clone() method of Object (the uppermost class), which creates a new instance of the same class as the object and copies all the fields to the new instance (a "shallow copy").

我是从 wikipedia 读到的.

不明白为什么是浅拷贝。 clone() 将创建一个包含所有字段的新实例。这只是一个深拷贝吗?使困惑。需要我解释一下。

最佳答案

默认的 Object.clone() 确实是一个浅拷贝。但是,它旨在抛出 CloneNotSupportedException,除非您的对象实现了 Cloneable

当您实现 Cloneable 时,您应该通过调用 clone 覆盖 clone() 以使其进行深度复制() 在本身可克隆的所有字段上。

关于java - java中的clone()是浅拷贝吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5279256/

相关文章:

用于关闭窗口的 Java Swing 非 Activity 按钮

java - 如何访问这个私有(private)变量?

javascript - react 切换列表竞争条件?

java - android中 Intent 中对象的浅拷贝

java - Azure Java Tomcat 日志记录

java - 在lucene中搜索时需要创建term shingles

python - 具有循环引用的 __deepcopy__ 对象

c++ - vector<Point> myArr 的深拷贝

language-agnostic - 复制构造函数/运算符/函数是否需要明确它实现的复制变体?

c# - 从委托(delegate)构造委托(delegate)。新的委托(delegate)指向什么?