首页 > 代码库 > java.lang.Object 之 clone() 使用
java.lang.Object 之 clone() 使用
Java的所有类都默认继承 java.lang.Object 类,在 java.lang.Object 类中有一个方法 clone()。JDK API的说明文档解释这个方法将返回Object对象的一个拷贝。要说明的有两点:一是拷贝对象返回的是一个新对象,而不是一个引用。二是拷贝对象与用 new操作符返回的新对象的区别就是这个拷贝已经包含了一些原来对象的信息,而不是对象的初始信息。
对于Java中使用 clone() 方法有几点需要注意
1:被clone的类必须实现 Cloneable 接口,Cloneable 接口实际上是个标识接口,没有任何接口方法,如果不实现 Cloneable 接口会报 java.lang.CloneNotSupportedException。
2:实现 Cloneable 接口的类应该使用公共方法重写 Object.clone()(它是受保护的)。某个对象实现了此接口就克隆它是不可能的。即使 clone() 方法是反射性调用的,也无法保证它将获得成功。
3:写 clone() 方法时,通常都有一行代码 super.clone(); clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员
public class Clone implements Cloneable { @Override public Clone clone() { try { Clone clone = (Clone) super.clone(); return clone; } catch (CloneNotSupportedException e) { throw new InternalError(e); } }}
java.lang.Object 之 clone() 使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。