什么是在Java中使用可复制的接口?(What is the use of cloneable in

2019-06-26 07:06发布

什么是使用实施可复制的接口,因为它是一个标记接口呢?

我总能在我的类中的公共对象的clone()方法。 什么是可复制的接口的实际目的是什么?

Answer 1:

这是因为clone()方法抛出CloneNotSupportedException ,如果你的对象不是Cloneable

你应该看看在对文件clone()方法。

以下是怎样clone()方法是在类中声明Object

protected Object clone() throws CloneNotSupportedException

注意:

此外,它已经意识到, Clone是破碎。 这个答案在这里SO解释了为什么以及如何避免使用它。



Answer 2:

制作Cloneable一个标记接口是一个错误。

这就是说,一方面它是“使能”的默认实现clone()Object 。 如果不implement Cloneable然后调用super.clone()将抛出一个CloneNotSupportedException



Answer 3:

有人说这是从C ++模仿拷贝构造函数的尝试,但在这里是关于它在计算器上以前类似的问题: 关于Java的可复制



Answer 4:

clone()方法的目的是创建调用它的对象的一个​​新实例(副本)。 如您在使用克隆方法的答案看你的类应该实现了Cloneable接口。 您可以选择如何实现克隆,你能为你做的类浅或深的副本。 你可以看到的例子http://javapapers.com/core-java/java-clone-shallow-copy-and-deep-copy/ 。



Answer 5:

其目的是在指定的javadoc 。 它是指定此类型的对象的克隆是允许的。

如果你的类依赖于内置的实施clone()由提供Object.clone()方法),那么这个标记接口使现场逐场克隆。 (如果你调用内置的对象上的克隆方法没有实现Cloneable ,你会得到一个CloneNotSupportedException 。)



文章来源: What is the use of cloneable interface in java?
标签: java clone