对基本类型的变量进行拷贝非常简单,直接赋值给另外一个对象即可:
1 int b = 50; 2 int a = b; // 基本类型赋值
对于引用类型的变量(例如 String),情况稍微复杂一些,因为直接等号赋值只是复制了一份引用,而复制前后的两个引用指向的是内存中的同一个对象。
要想实现引用类型的拷贝,可以通过实现 Cloneable 接口,并覆盖其中的 clone 方法来实现。
看一个例子,首先定义一个待拷贝的 Student 类,为简单起见,只设置了一个 name 属性
1 class Student implements Cloneable{ 2 private String name; 3 4 public String getName() { 5 return name; 6 } 7 8 public void setName(String name) { 9 this.name = name; 10 } 11 12 @Override 13 public Object clone(){ 14 Student s = null; 15 try{ 16 s = (Student)super.clone(); 17 }catch(Exception e){ 18 e.printStackTrace(); 19 } 20 return s; 21 } 22 }