草庐IT

CLONE_NEWNET

全部标签

java - 在 clone() 中我们使用 super.clone() 然后访问一个不在 super 中的变量,这是怎么回事?

在clone方法的通常实现中有一些我不明白的地方。如果您查看以下代码中tryblock的第一行,我们正在调用super.clone(),它将创建父类(superclass)的实例,并返回对该实例的Object引用。现在,该实例不一定包含hireDay,那么我们怎么说copy.hireDay?它确实可以正常编译,但如果实例不包含hireDay,它不会崩溃吗?publicObjectclone(){try{Employeecopy=(Employee)super.clone();//copyID,name,andsalary!copy.hireDay=(Date)hireDay.clone

java - Java的clone()方法是实现多态克隆的唯一途径吗?

我需要为我的类(class)配备多态克隆(深拷贝),即我需要这样的东西才能工作:SuperTypeoriginal=newSubType();SuperTypecopy=original.clone();其中original.clone()可以被任何机制替代以创建深拷贝,copy的实际类型应为SubType,因为original也是一个SubType。clone()方法和Cloneable接口(interface)是实现此目的的唯一方法吗?不能使用工厂方法和复制构造函数,因为实际的类只在运行时才知道,对吧?除了那些序列化-反序列化方法和Javadeep-cloninglibrary之外

java - 使用 new 关键字创建对象与使用 clone 方法之间的区别

使用new关键字创建对象和使用clone()创建对象有什么区别??内存分配有什么区别吗? 最佳答案 new根据构造函数创建一个对象,而clone()创建一个新对象并使用原始对象的内容初始化字段。我接受了,您阅读了javadoc,所以让我带您看一个示例:publicclassMyBabyimplementsCloneable{intage=0;Stringname="Dolly";Listlist=newArrayList();publicstaticvoidmain(String[]args){MyBabyoriginalBaby=

java - GWT 使用 DOM.clone 克隆一个小部件

我希望以编程方式克隆一个小部件。我可以使用Dom.clone在Widget中克隆Element,但我似乎无法从这个克隆的元素创建Widget。这可能吗?//somewhereinonModuleLoad()...Buttonbutton=newButton("Original");RootPanel.get().add(button);//.....lateron...ElementbuttonCloneElement=DOM.clone(button.getElement(),true);WidgetbuttonClone;buttonClone=newButton(buttonCl

java - 为什么 java.lang.Cloneable 没有覆盖 java.lang.Object 中的 clone() 方法?

java.lang.Cloneable接口(interface)的Java规范将自身定义为表示任何扩展它的对象也已经实现了clone()方法,该方法在其中处于hibernate状态java.lang.Object。具体来说,它说:AclassimplementstheCloneableinterfacetoindicatetothejava.lang.Object#clone()methodthatitislegalforthatmethodtomakeafield-for-fieldcopyofinstancesofthatclass.对我来说,这意味着应该假设每个扩展Cloneab

java - 为不可变类实现 clone()

我正在开发一个类库。我有一个矩阵的抽象基类Matrix,它提供一些基本方法的实现。从Matrix派生的是不同类型矩阵的具体子类。我要求矩阵是可克隆的,所以Matrix实现了Cloneable接口(interface)。一些从Matrix派生的类是不可变的不可变类的克隆方法不返回对象的克隆,而是返回对象本身是否可以接受?用于澄清的一些(过于简化的)代码:abstractclassMatriximplementsCloneable{...}classImmutableMatrixextendsMatrix{ImmutableMatrixclone(){returnthis;}...}cla

git clone 项目报错early EOF 的解决方式

年后第一天开工拉取代码时遇到一个报错,earlyEOF,上网查说一般出现这种错误的原因是目标仓库太大了,顾尝试修改git缓存后重试:gitconfig--globalhttp.postBuffer1048576000将http.postBuffer设置的尽量大,例如524288000即500M,1048576000即1G。设置的缓存大小一定要比工程大小多一些。如若还是没能解决,可尝试为git添加compression配置选项后重试:gitconfig--globalcore.compression-1compression是压缩的意思,左后的取值为[-1,9],-1以zlib为默认压缩库,0表

git clone拉取GitHub项目失败/太慢的解决方法

问题描述:在Ubuntu中通过gitclone从GitHub上拉取项目时,遇到失败/速度慢等情况目录问题描述:—解决方法1确定是否安装git工具包2拉取失败/慢的原因与解决方法(1)挂了梯子等原因(2)git版本过低(3)网不好/源不好/地址偏等等(3-1)使用国内GitHub镜像站(不一定很快,但有用)(3-2)另一种方法使用国内GitHub镜像站(很有用,很方便)(3-3)直接去GitHub网址下载项目压缩包(附进入网址方法)—方法总结—解决方法1确定是否安装git工具包通过在终端输入以下命令可以查看:git--version如果没有安装,可以通过以下命令进行安装:sudoaptinsta

java - 使用复制构造函数而不是 Object.clone 进行深度复制的正确方法

我有一些代码使用Object.clone执行深层复制,但我正在尝试使用更“可接受”的复制构造函数技术重写它。下面是我正在尝试做的两个简单示例,第一个使用克隆,第二个使用复制构造函数。使用克隆的深拷贝importjava.util.*;abstractclassPersonimplementsCloneable{Stringname;publicObjectclone()throwsCloneNotSupportedException{returnsuper.clone();}}classTeacherextendsPersonimplementsCloneable{intcourses

Java中四种常用的数组复制的方法copyOf(),arraycop(),clone()和copyOfRange()的使用与区别

所谓复制数组,是指将一个数组中的元素在另一个数组中进行复制。本文主要介绍关于Java里面的数组复制(拷贝)的几种方式和用法。在Java中实现数组复制分别有以下4种方法:1.Arrays类的copyOf()方法2.Arrays类的copyOfRange()方法3.System类的arraycopy()方法4.Object类的clone()方法下面来详细介绍这4种方法的使用。使用copyOf()方法和copyOfRange()方法Arrays类的copyOf()方法与copyOfRange()方法都可实现对数组的复制。copyOf()方法是复制数组至指定长度的(新)数组,copyOfRange()