語言

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

傳回

是這個實例的複製品。

屬性

例外狀況

如果這個物件的類別沒有實作該介面。Cloneable

備註

建立並回傳此物件的副本。 「複製」的精確含義可能取決於物件的類別。 一般意圖是,對於任何物件 x,表達式為: <blockquote>

x.clone() != x

</blockquote> 為真,且表達式: <blockquote>

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

</blockquote> 會是 true,但這些並非絕對要求。 雖然通常情況是: <引用區塊>

x.clone().equals(x)

</blockquote> 將是 true,這並非絕對要求。

依慣例,回傳物件應透過呼叫 super.clone取得。 若一個類別及其所有超類別(除 Object)都遵守此慣例,則 將是 x.clone().getClass() == x.getClass()

依慣例,此方法回傳的物件應獨立於被克隆的物件。 為了達成這種獨立性,可能需要先修改物件的 super.clone 一個或多個欄位,然後再返回物件。 通常,這表示複製構成被克隆物件內部「深層結構」的任何可變物件,並將對這些物件的參考替換為對複製品的引用。 如果一個類別只包含原始欄位或對不可變物件的引用,通常該物件中回傳 super.clone 的欄位不需要修改。

java.lang.Object.clone()Java 檔。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於