gpt4 book ai didi

java - 使用和不使用 Cloneable 覆盖克隆

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:18:53 25 4
gpt4 key购买 nike

我已经阅读了 ObjectCloneable 的 javadoc,只是没有“得到”一些东西。有人可以向我解释以下两个示例的性能和/或功能差异吗:

public class Widget
{
@Override
public Widget clone()
{
// ... return a clone of this Widget
}
}

..和:

public class Widget implements Cloneable
{
@Override
public Widget clone()
{
// ... return a clone of this Widget
}
}

因为 Cloneable 没有任何绑定(bind)的方法,只允许您访问 Object 的 protected clone() 方法,它甚至有意义吗首先实现它,看到你将不得不以任何方式编写自己的(安全的)clone()代码?提前感谢您的任何澄清/意见。

最佳答案

这是一个contractual obligation .

Invoking Object's clone method on an instance that does not implement the Cloneable interface results in the exception CloneNotSupportedException being thrown.

虽然可能没有可重写的方法,但您仍在实现您所属的接口(interface)。在这样做的过程中,您承担了其后续契约(Contract)所带来的一切。它迫使您有意识地实现 clone() 方法,从而使行为明确。

关于java - 使用和不使用 Cloneable 覆盖克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com