一个类如果想重写 Object 的 clone 方法,则必须实现 Cloneable 接口,否则调用 clone 方法时将会抛出 CloneNotSupportException 异常
/**
* Author: heatdeath
* Date: 2018/7/7
* Desc:
*/
public class CloneDemo {
static class CloneClass {
public String str;
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
public static void main(String[] args) throws Exception {
CloneClass cloneClass1 = new CloneClass();
System.out.println(cloneClass1);
cloneClass1.str = "hello world";
CloneClass cloneClass2 = (CloneClass) cloneClass1.clone();
System.out.println(cloneClass2);
System.out.println(cloneClass2.str);
}
}
com.heatdeath.test_package.CloneDemo$CloneClass@4554617c
Exception in thread "main" java.lang