一尘不染

关于Java克隆

java

我一直在寻找一些讲解Java的教程Cloneable,但没有获得任何良好的链接,无论如何,Stack Overflow变得越来越明显。

我想知道以下内容:

  1. Cloneable意味着我们可以通过实现Cloneable接口来获得对象的克隆或副本。这样做的优点和缺点是什么?
  2. 如果对象是复合对象,则如何进行递归克隆?

阅读 346

收藏
2020-03-08

共1个答案

一尘不染

你应该了解的第一件事Cloneable-不要使用它。

Cloneable正确地进行克隆非常困难,而且付出的努力是不值得的。

而不是使用其他一些选项,例如apache-commons SerializationUtils(deep-clone)或BeanUtils(shallow-clone),或仅使用复制构造函数。

有关 Josh Bloch关于使用克隆的观点,请参见此处Cloneable,这解释了该方法的许多缺点。(Joshua Bloch是Sun的雇员,并领导了许多Java功能的开发。)

2020-03-08