cloneable相关内容

为什么 Cloneable 不被弃用?

众所周知,Java中的Cloneable接口被破坏了.造成这种情况的原因有很多,我就不说了;其他人已经做到了.这也是 Java 架构师自己的立场. 因此,我的问题是:为什么还没有被弃用?如果核心 Java 团队已经确定它已损坏,那么他们也必须考虑过弃用.他们反对这样做的原因是什么(在 Java 8 中它是仍然没有被弃用)? 解决方案 有一个bug 1997 年提交给 Java Bug ..
发布时间:2021-12-28 08:55:41 Java开发

来自对象的方法 clone() 不可见?

问题: 打包GoodQuestions;公共类 MyClass {MyClass() 抛出 CloneNotSupportedException {尝试 {抛出新的 CloneNotSupportedException();} 捕获(异常 e){e.printStackTrace();}}公共静态无效主(字符串 [] args){尝试 {MyClass obj = new MyClass();M ..
发布时间:2021-12-23 09:05:03 Java开发

Cloneable 在 Java 中如何工作以及如何使用它?

我想知道以下内容: Cloneable 意味着我们可以拥有对象的克隆或副本,通过实现 Cloneable 接口.有什么优点和这样做的坏处? 如果对象是一个对象,递归克隆是如何发生的?复合对象? 解决方案 关于 Cloneable 你应该知道的第一件事是 - 不要使用它. 使用Cloneable正确实现克隆是非常困难的,而且付出的努力是不值得的. 而不是使用其他一些选项, ..
发布时间:2021-11-25 13:53:03 Java开发

如何正确覆盖克隆方法?

我需要在没有超类的对象之一中实现深度克隆. 处理超类(即Object)抛出的已检查CloneNotSupportedException的最佳方法是什么? 一位同事建议我按以下方式处理: @Override公共 MyObject 克隆(){我的对象 foo;尝试{foo = (MyObject) super.clone();}catch (CloneNotSupportedExcept ..
发布时间:2021-11-25 13:27:49 Java开发

为什么Object clone()方法仅对实现Cloneable接口的类可用?

我知道 clone()是一种受保护的方法,但是“受保护"意味着特定类的所有子类都可以访问它. 任何Java类都是 Object 的子类,那么这里使用受保护方法的原因是什么? 为什么我们只能在实现 Cloneable 接口的类上调用 clone()?我不明白它如何与以下事实联系在一起:在 Object 中的 clone()被声明为受保护的. 解决方案 对象的clone()方法非常 ..
发布时间:2021-05-18 19:57:05 Java开发

可克隆在Java中如何工作以及如何使用它?

我想知道以下内容: Cloneable 意味着我们可以通过以下方式获得对象的克隆或副本:实现 Cloneable 接口.有什么优点和这样做的缺点? 如果对象是一个对象,那么如何进行递归克隆复合对象? 解决方案 关于 Cloneable 的第一件事是-不要使用它. 使用 Cloneable 正确执行克隆非常困难,而付出的努力是不值得的. 代替使用其他一些选项,例如apac ..
发布时间:2021-05-18 18:57:42 Java开发

super.clone()操作在派生类中不起作用

之所以出现此问题,是因为我的项目中遇到了技术难题。 问题: 我需要克隆一个Class对象,该对象从第三方库类(我们无权修改其内容)扩展属性(继承) 下面的示例让我解释一下: 父级: 公共类UnChangeableBaseClass { //字段和方法 } 子类: class DerivedLocalClass扩展UnChangea ..
发布时间:2020-10-02 22:44:41 Java开发

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

java.lang.Cloneable 接口的Java规范将其自身定义为表示扩展该对象的任何对象也已实现了 clone() 方法在 java.lang.Object 中处于休眠状态。具体来说,它表示: 一个类实现了 Cloneable 接口以指示 java.lang.Object#clone()方法,认为该方法为该类的实例进行逐域复制是合法的。 对我来说,这意味着应该假设每个扩展 Cl ..
发布时间:2020-10-02 22:34:11 Java开发

为什么CopyOnWriteArraySet不实现Cloneable接口,而CopyOnWriteArrayList呢?

Doug Lea在错误报告中写道(指版本的JDK 5.0): 同时声明 $ c> Cloneable ,它无法定义公共克隆方法。 但最终最终导致 CopyOnWriteArraySet 根本没有实现 Cloneable 接口! (在Java SE 6、7和8中是这样。) CopyOnWriteArraySet 与 CopyOnWriteArrayList 关于克隆?有一个合理的原 ..
发布时间:2020-10-02 22:29:47 Java开发

在LinkedList上实现克隆

我正在尝试在 DoubleLinkedList 上实现 clone()方法。现在,问题是,与仅创建一个新的 DoubleLinkedList 并用我当前的DoubleLinkedList的所有元素填充一样,通过“约定”实现它要麻烦得多。 / p> 这样做时有什么不便之处吗? 这是我目前的做法: @覆盖 public DoubleLinkedList clone(){ ..
发布时间:2020-06-08 18:46:09 Java开发

为什么Java 8中的Cloneable中没有默认的clone()

Java中的 Cloneable 本质上已被破坏。具体来说,我对界面的最大问题是它需要一种不定义方法本身的方法行为。因此,如果遍历 Cloneable 列表,则必须使用反射来访问其定义的行为。但是,在Java 8中,我们现在有默认方法,现在我问为什么 Cloneable clone()方法c $ c>。 我理解为什么接口不能默认使用Object方法,但是,这是一个明确的设计决策,因此可以进 ..
发布时间:2018-12-26 15:02:43 Java开发

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

我有一些使用Object.clone执行深层复制的代码,但我正在尝试使用更“可接受”的复制构造函数来重写它。下面是我正在尝试做的两个简单示例,第一个使用克隆,第二个使用复制构造函数。 使用克隆的深层复制 import java.util。*; 抽象类Person实现Cloneable { String name; public Object clone()抛出CloneN ..
发布时间:2018-12-07 12:08:49 Java开发

关于java中的可克隆接口和object.clone()的困惑

如果我有: class foo实现Cloneable 然后执行: bar = new foo(); bar.clone(); 我得到一份浅层副本,无需编写任何 bar.clone() 我实现接口时通常需要做的代码。 我的理解是接口的函数必须由类填写实现它, Object.clone()没有实现(根据文档,“类Object本身不实现 ..
发布时间:2018-12-05 10:59:53 Java开发