在做對象克隆,尤其是深度克隆時,需要注意不僅僅對象的引用需要特殊處理,數組也一樣
public class ArrayCloneTest implements Cloneable{
public byte[] source = new byte[] {(byte)127,(byte)1};
@Override
public ArrayCloneTest clone() throws CloneNotSupportedException {
ArrayCloneTest gen = (ArrayCloneTest)super.clone();
return gen;
}
public static void main(String[] args) {
ArrayCloneTest test = new ArrayCloneTest();
System.out.println(Arrays.toString(test.source));
try {
ArrayCloneTest clone = test.clone();
clone.source[1] =(byte)2;
System.out.println(Arrays.toString(clone.source));
System.out.println(Arrays.toString(test.source));
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
}
}