java - super的克隆是做什么的?

标签 java

我正在阅读 Effective Java
中有关clone 的内容 它说在 clone 中,第一个被调用的方法必须是 super.clone()
在这种情况下,我想最终我们最终会调用 java.lang.Objectclone 进入层次结构链。
但我认为对象的克隆没有做任何事情。
查看代码我看到:
protected native Object clone() throws CloneNotSupportedException; 并且没有实现。
但是从段落来看,如果一个类只有原始字段调用
(ClassX) super.clone() 足以创建克隆。
但是怎么办? super.clone 属于对象

最佳答案

对象中的这个声明

  protected native Object clone() throws CloneNotSupportedException;

... 表示clone方法是在native代码中实现的;即幕后发生了魔法。

您可以放心,Object.clone() 实际上确实做了一些事情...只要您已声明您的类实现了 Cloneable。但它的作用无法用普通的 Java 表达。

关于java - super的克隆是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10408732/

相关文章:

java - JSP 中 forEach 内的奇怪函数

java - 如何在混淆的 java 文件中找出导致它的原因?

java - Spring MVC : No qualifying bean of type [org. hibernate.SessionFactory] ​​发现依赖项

java - 如何在 spring 应用程序上下文 xml 文件中调用带有几个参数的 java 方法

java - 我的 switch 语句遇到一些问题

Java Generics Puzzler,扩展类并使用通配符

java - Optaplanner ChangeMove 过滤

java - 如何根据字符串java中的一个单词对链接列表进行排序

java - 为什么带有内部类的 Java 代码会生成第三个 SomeClass$1.class 文件?

java - 为什么 JDBC 将端口 0 视为与空(默认)端口相同?