Object.Clone 方法

定义

创建并返回此对象的副本。

[Android.Runtime.Register("clone", "()Ljava/lang/Object;", "GetCloneHandler")]
protected virtual Java.Lang.Object Clone();
[<Android.Runtime.Register("clone", "()Ljava/lang/Object;", "GetCloneHandler")>]
abstract member Clone : unit -> Java.Lang.Object
override this.Clone : unit -> Java.Lang.Object

返回

此实例的克隆。

属性

例外

如果此对象的类未实现接口,则

注解

创建并返回此对象的副本。 “copy”的精确含义可能取决于对象的类。 一般意向是,对于任何对象 x,表达式: <blockquote>

x.clone() != x

</blockquote> 为 true,表达式为 <blockquote>

x.clone().getClass() == x.getClass()

</blockquote> 将是 true,但这些不是绝对要求。 虽然通常是: <blockquote>

x.clone().equals(x)

</blockquote> 将是 true,这不是绝对要求。

按照约定,返回的对象应通过调用 super.clone来获取。 如果一个类及其所有超级类(除外 Object)都遵循此约定,则情况就是这样 x.clone().getClass() == x.getClass()

按照约定,此方法返回的对象应独立于此对象(正在克隆)。 若要实现此独立性,可能需要在返回对象之前修改返回 super.clone 的一个或多个字段。 通常,这意味着复制包含所克隆对象的内部“深层结构”的任何可变对象,并将对这些对象的引用替换为对副本的引用。 如果类仅包含基元字段或对不可变对象的引用,则通常不需要修改对象中返回 super.clone 的字段。

适用于 . 的 java.lang.Object.clone()Java 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

适用于