个性化阅读
专注于IT技术分析

Java克隆对象

点击下载

对象克隆是创建一个对象的精确副本的方式。对象类的clone()方法被用于克隆对象。

该java.lang.Cloneable接口必须由我们要建立其对象克隆的类实现。如果我们不实现Cloneable接口,clone()方法生成CloneNotSupportedException异常。

克隆()方法在所述对象类中定义。克隆()方法的语法如下:

protected Object clone() throws CloneNotSupportedException

为什么要使用clone()方法?

该clone()方法节省了用于创建对象的精确副本额外的处理任务。如果我们使用new关键字执行它,它会主动进行大量的处理时间,这就是为什么我们使用对象的克隆。

对象克隆的优势

虽然Object.clone()有一些设计问题,但它仍然是复制对象的一种流行和简便的方法。以下是使用clone()方法的优点列表:

  • 你不需要写冗长和重复的代码。只需使用一个抽象类与4-或5-线长clone()方法。
  • 这是复制对象的最简单,最有效的方法,尤其是当我们把它应用到一个已经开发或旧的项目。只要定义一个父类,它实现Cloneable,提供clone()方法的定义和任务将完成。
  • 克隆()是复制数组的最快方法。

对象克隆的缺点

以下是)克隆的一些缺点(方法的列表:

  • 要使用Object.clone()方法,我们要了很多语法的改变我们的代码,就像实现Cloneable接口,定义clone()方法和处理CloneNotSupportedException异常,最后,调用Object.clone()等。
  • 我们必须实现可复制的接口,而它并没有在它的任何方法。我们只是用它来告诉JVM,我们可以执行的clone()我们的对象。
  • Object.clone()是受保护的,所以我们要为我们自己的clone()和间接从中调用Object.clone()。
  • Object.clone()不调用任何构造函数,所以我们并没有对对象的构造任何控制。
  • 如果你想要写一个子类,然后所有其超应该定义或从其它父类继承它在其中的clone()方法的克隆方法。否则,super.clone()来链将失败。
  • Object.clone()只支持浅拷贝,但是我们需要重写,如果我们需要深克隆。

克隆的实施例()方法(对象克隆)

让我们来看看对象克隆的简单例子

class Student18 implements Cloneable{
int rollno;
String name;

Student18(int rollno,String name){
this.rollno=rollno;
this.name=name;
}

public Object clone()throws CloneNotSupportedException{
return super.clone();
}

public static void main(String args[]){
try{
Student18 s1=new Student18(101,"amit");

Student18 s2=(Student18)s1.clone();

System.out.println(s1.rollno+" "+s1.name);
System.out.println(s2.rollno+" "+s2.name);

}catch(CloneNotSupportedException c){}

}
}
Output:101 amit
       101 amit

正如你可以在上面的例子中看到的,引用变量的值相同。因此,克隆()拷贝一个目的是另一个的值。所以我们并不需要编写显式代码到一个对象的值复制到另一个。

如果我们通过创建新的关键字另一个对象,并指定另一个对象的值这一项,这将需要很多这样的对象上处理的。因此,为了节省额外的处理任务,我们使用clone()方法。

赞(0)
未经允许不得转载:srcmini » Java克隆对象

评论 抢沙发

评论前必须登录!