编程语言
首页 > 编程语言> > 在java浅拷贝中是clone()吗?

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

作者:互联网

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()以使其执行深层复制.

标签:shallow-copy,java,deep-copy
来源: https://codeday.me/bug/20191005/1855905.html