关于Java Cloneable接口 博客分类: Java 克隆clonecloneablejava接口
程序员文章站
2024-03-26 12:07:35
...
1)Cloneable接口里面没有任何方法,Cloneable接口只是起一个标记作用,表明当一个类实现了Cloneable接口时,该类有可能通过调用Object类的clone()方法来克隆类的实例
2)仅仅实现了Cloneable接口是不够的,Object类的clone方法是Protected,所以你必须覆盖Object里面的clone()方法才能让其它的类可以使用该类的clone方法
3)通常当你没有特殊需求而且类中的成员变量都是基本类型时,你的类中覆盖Object的clone方法可能如下所示:
这个时候你必须注意,super.clone()执行的是浅拷贝,意味着如果你的类中有数组,Collection,对象,那么仅仅拷贝的是这些变量的引用,并没有将数组,集合中的成员对象复制成新的,所以你必须意识到这一点。
2)仅仅实现了Cloneable接口是不够的,Object类的clone方法是Protected,所以你必须覆盖Object里面的clone()方法才能让其它的类可以使用该类的clone方法
3)通常当你没有特殊需求而且类中的成员变量都是基本类型时,你的类中覆盖Object的clone方法可能如下所示:
@Override public Customer clone() { Object cloneObject = null; try { cloneObject = super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return (Customer) cloneObject; }
这个时候你必须注意,super.clone()执行的是浅拷贝,意味着如果你的类中有数组,Collection,对象,那么仅仅拷贝的是这些变量的引用,并没有将数组,集合中的成员对象复制成新的,所以你必须意识到这一点。
推荐阅读
-
关于Java Cloneable接口 博客分类: Java 克隆clonecloneablejava接口
-
java cas硬件底层接口 sun.misc.Unsafe UNSAFE 博客分类: 分布式
-
java cas硬件底层接口 sun.misc.Unsafe UNSAFE 博客分类: 分布式
-
java面试必备之抽象类、接口 博客分类: java基础 java接口抽象类
-
抽象类和接口 博客分类: JAVA 接口抽象类
-
抽象类和接口 博客分类: JAVA 接口抽象类
-
elasticsearch Java接口汇总 博客分类: 技术总结 elasticsearchJava接口汇总
-
core java学习笔记(二):有关接口 博客分类: JavaSE Java
-
Java接口和抽象类 博客分类: java 基础 Java接口抽象类
-
JDBC元数据操作-- DatabaseMetaData接口详解 博客分类: java