Cloneable

1.Object.clone()

protected native Object clone() throws CloneNotSupportedException;

创建并返回这个对象的拷贝。

注意它的权限是protected的,所以不能直接用。

注意它是native方法,所以比直接new对象效率高。

2.接口

public interface Cloneable {}

此接口不包含任何方法,是给jvm看的。

3.使用

实现Cloneable接口,并重写clone()方法,注意权限要改为public。注意要调用super.clone()。

效果为创建一个新对象,然后逐字段地拷贝,由jvm实现。对于引用类型,jvm只帮你浅拷贝,需要深拷贝的话还得自己实现。

在重写equals()方法后,效果为 x.clone() != x成立,x.clone().equals(x)成立。

例子:


你可能感兴趣的:(Cloneable)