为了账号安全,请及时绑定邮箱和手机立即绑定

clone() 方法(浅复制或深复制)

clone() 方法(浅复制或深复制)

四季花海 2021-08-06 10:58:07
在java书籍和在线教程中,Object.clone()除非使用Cloneable接口,否则方法提供浅拷贝,但在我实现的代码中clone()不使用Cloneable接口的方法,它提供深拷贝而不是浅拷贝。import java.util.GregorianCalendar;public class test1 {   public static void main(String[] args) {      // create a gregorian calendar, which is an object      GregorianCalendar cal = new GregorianCalendar();      // clone object cal into object y      GregorianCalendar y = (GregorianCalendar) cal.clone();      // check if reference of y is equal to cal or not      System.out.println(cal==y);//it's output should be true if this is a shallow copy but it is false.   }}
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

GregorianCalendar确实实现了Cloneable接口,所以它应该做一个深拷贝。

编辑:Java 只处理对对象的引用。因此,在这种情况下,由于GregorianCalendarclone方法执行深度复制,复制引用的一种方法是分配caly,即y = cal


查看完整回答
反对 回复 2021-08-06
  • 1 回答
  • 0 关注
  • 139 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信