问题标签 [cloneable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Object.clone() 的逐个字段复制是什么?
在 Effective Java 中,作者指出:
如果一个类实现了 Cloneable,则 Object 的 clone 方法返回该对象的逐个字段副本;否则会抛出 CloneNotSupportedException。
我想知道的是他对逐场副本的含义。这是否意味着如果该类在内存中有 X 个字节,它只会复制那块内存?如果是,那么我可以假设原始类的所有值类型都将被复制到新对象中吗?
如果Object.clone()
是类的逐个字段副本Point
,我会说我不需要显式复制字段x
和y
,因为上面显示的代码足以克隆Point
该类。也就是说,以下代码是多余的:
我对吗?
我知道克隆对象的引用会自动指向原始对象的引用指向的位置,我只是不确定值类型具体会发生什么。如果有人能清楚地说明什么Object.clone()
是算法规范(用简单的语言),那就太好了。
java - 在 LinkedList 上实现克隆
我正在尝试clone()
在DoubleLinkedList
. 现在,问题是通过“约定”实现它比仅仅创建一个新的DoubleLinkedList
并用我当前的 DoubleLinkedList 的所有元素填充它要麻烦得多。
这样做时我没有看到任何不便之处吗?
这是我目前的方法:
这是公约的内容:
java - Eclipse Galileo 的 Java 的“clone()”方法生成器
clone()
存储库中可用的 Eclipse Galileo中 java 方法生成的最佳工具是什么?是什么原因阻止了 Eclipse 开发人员在标准版本中包含这个工具?
java - CXF:来自 wsdl2java 的可克隆类?
是否可以让 CXF 的 wsdl2java 发出可克隆的类?也许通过一些选项或插件?
我需要做的是按值将一个相当复杂的模式结构从一个对象树复制到另一个对象树,而不是手动获取/设置每个成员值或手动触摸生成的类。
/比约恩
c# - 我可以用什么来代替可以克隆的“长”?
我可以用什么来代替可以克隆的“长”?
请参阅下面的代码,只要不可克隆,我就会在此处收到错误。
编辑:我忘了提到我想使用我找到的以下代码(见下文)。
java - 可克隆行为
Java 文档说 -
Object 类本身并没有实现接口 Cloneable,因此在类为 Object 的对象上调用 clone 方法将导致在运行时抛出异常。
这就是为什么 Object 类中的 clone 方法受到保护的原因?是这样吗 ?
这意味着任何不实现可克隆的类在调用其克隆方法时都会抛出 CloneNotSupported 异常。
我运行了一个测试程序
从 Class Test 的克隆方法 super.clone 被调用?
为什么它不抛出异常?
c++ - 如何克隆多继承对象?
我定义了一个 Cloneable 接口:
我还有一些其他接口类(内容与问题无关):
我创建了一个继承自上述类的叶对象:
我收到错误:
如果我将类型更改为Cloneable *
,我会收到以下错误消息:
我的问题(所有相关):
- 叶类如何解决
Cloneable
接口的需求? - 是否有更好的解决方案来实现克隆合约,保证所有对象都实现克隆?
我将这种范式用作通用编程(记录、字段和数据库)的一部分。
编译器:MS Visual Studio 2008;平台:Windows XP 和 Vista
jquery - 在 jQuery 中克隆表单并增加索引
这似乎相对简单,我只是对 jQuery 语法感到困惑。
基本上我想采取这种形式:
并用按钮复制它并增加变量数..
java - Cloneable 在 Java 中如何工作以及如何使用它?
我想知道以下内容:
Cloneable
意味着我们可以通过实现Cloneable
接口来克隆或复制对象。这样做有什么好处和坏处?- 如果对象是复合对象,递归克隆如何发生?
java - 使用复制构造函数而不是 Object.clone 进行深度复制的正确方法
我有一些使用 Object.clone 执行深层复制的代码,但我正在尝试使用更“可接受”的复制构造函数技术来重写它。下面是我正在尝试做的两个简单示例,第一个使用克隆,第二个使用复制构造函数。
使用克隆的深拷贝
使用复制构造函数的深拷贝
我发现有趣的是,尽管大家都在谈论 Java 中克隆的弊端,但克隆替代方案需要更少的代码和更少的强制转换(至少在这种特殊情况下)。
我很感激有关复制构造函数替代方案的反馈。你会做不同的事情吗?谢谢。