原因
Object 类下的 clone 方法属于浅拷贝,深拷贝需要重写该方法。
拓展
1 -> 对象克隆(Clone)
Object 类下的 clone 方法,实现了对对象中各个属性的复制,使用的前提为:

  • 实现 Cloneable 接口
  • 覆盖 clone() 方法,可见性提升为 public
@Date
public class SeenewStaff implements Cloneable{private String name;private String rank;private Dept dept;// 隐藏相关的 getter/setter/toString 方法 @Overrideprotected Object clone() throws CloneNotSupportedException{return super.clone();}
}@Date
public class Dept{private String deptName;private String deptCode;// 隐藏相关的 getter/setter/toString 方法@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}@Test
public void SeenewStaffTest() throws Exception{Dept rd = new Dept();rd.setDeptName("研发部");rd.setDeptCode("XNTL_YF");tSeenewStaff zs = new SeenewStaff();zs.setName("张三");zs.setRank("P5");zs.setDept(rd);SeenewStaff ls = (SeenewStaff) zs.clone();ls.getDept.setDeptName("人资部");System.out.println(zs.toString);System.out.println(ls.toString);
}

2 -> 浅拷贝与深拷贝
以上代码中 SeenewStaff 模型实体类继承 Cloneable 借口,并重写 clone() 方法,在此时刻实现了浅拷贝。浅拷贝中对象所有的引用属性仍然指向原对象,如果被克隆对象的每一层被指向的对象也实现 Cloneable 借口并覆盖 clone() 方法,则为深拷贝,深拷贝还有通过对象序列化的方式。

【Ail规约】慎用 Object 类下的 clone 方法拷贝对象相关推荐

  1. java 克隆对象_Java 中如何使用clone()方法克隆对象?

    java为什么要 对象克隆: 在程序开发时,有时可能会遇到以下情况:已经存在一个对象A,现在需要一个与A对象完全相同的B 对象,并对B 对象的属性值进行修改,但是A 对象原有的属性值不能改变.这时,如 ...

  2. [ 转载 ] Java基础10--关于Object类下所有方法的简单解析

    关于Object类下所有方法的简单解析 类Object是类层次结构的根类,是每一个类的父类,所有的对象包括数组,String,Integer等包装类,所以了解Object是很有必要的,话不多说,我们直 ...

  3. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  4. 重写Java Object类中的equals()方法

    Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...

  5. Object类toString()和equals()方法剖析

    Object类是Java语言中的根类,即所有类的父类.它中描述的所有方法子类都可以使用.所有类在创建对象的时候,最终找的父类就是Object. toString()方法 由于toString方法返回的 ...

  6. JAVA进阶教学之(Object类中的equals方法)

    public boolean equals(Object obj){return (this == obj); } 原始equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等 ...

  7. 关于Java的Object.clone()方法与对象的深浅拷贝,java面试题,java初级笔试题

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 文章 ...

  8. Object类中常见的方法

    一.Object类中的toString()方法 1. object 默认方法 toString方法,toString() 输出一个对象的地址字符串(哈希code码)! 2.可以通过重写toString ...

  9. String类中的equals方法与Object类中的equals方法的不同点

    1.首先我们看看Object类中的equals方法 public boolean equals(Object obj) {return (this == obj);} 我们可以看出Object类中判断 ...

  10. 【python object类及其内置方法】

    1. object类 object类所有类的父类,默认所有的类都继承至object类 当我们定义一个类,没有指定他的父类时,它默认就是继承了object类 例如 class Student:pass ...

最新文章

  1. FZU 1889 龟兔赛跑
  2. 计算机毕设-文献摘要,毕设摘要翻译,要人工翻译,不要电脑网站翻译的。
  3. 程序员应具备的职业素质
  4. 刚刚收到的邮件,Google对Admob的收购已经顺利结束
  5. Linux权限、角色作用
  6. 借助Sigar API获取CPU相关信息
  7. java核心技术卷一,二(经典)
  8. php redis 里面的hscan 第四个参数count很不靠谱
  9. Python功能实现:为pdf电子书籍生成书签目录
  10. 美颜SDK的出现给直播和短视频平台带来了哪些影响?
  11. android DISALLOW_EVIL_CONSTRUCTORS
  12. 基于java的商城后台管理系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  13. 破解CMOS密码和隐藏文件
  14. 大数据——云服务常用词汇及含义
  15. HNUST-OJ-2184-huffman编码(1)
  16. java背包_java-背包的实现
  17. Docker(六)——使用 bind mounts
  18. web怎么将dwg转换图片_怎么把CAD图转换成高清jpg图?
  19. ImageJ如何对图像进行旋转
  20. oracle 表的碎片化整理

热门文章

  1. 华为无线网卡无服务器,联通华为无线上网卡连接时连接被终止解决方法 - 小众知识...
  2. HTML表格制作学习提示
  3. 商标是否占用查询方法、阿里云商标注册方法
  4. SQL实现对销售表现重要指标的计算,对用户特征分层看销售贡献,并统计消费的二八法则
  5. Java UTC(GMT)时间和Date时间转换
  6. PID控制,matlab/simulink
  7. 【2019年5月23日】指数估值排名
  8. 如何关闭H3C的交换机路由器等设备上使用SFP模块时候产生的警告提示
  9. android平板电脑系统安装程序,小编教你安装安卓平板win 10 1809电脑软件
  10. Racket 的诞生与发展