java.lang.Object.clone()方法範例


java.lang.Object.clone() 建立並返回此物件的一個副本。 “複製”的確切含義可能依賴於物件的類。一般的意圖是,對於任何物件x,表示式:

 x.clone() != x

會是true,那個表示式:

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

將為true,但這些都不是絕對的要求。雖然通常的情況是:

 x.clone().equals(x)

將為true,但這不是絕對的要求。

宣告

以下是java.lang.Object.clone()方法的宣告

protected Object clone()

引數

  • NA

返回值

此方法返回這個範例的一個副本。

異常

  • CloneNotSupportedException -- 如果物件的類不支援Cloneable介面。子類覆蓋clone方法也會丟擲此異常,指示一個範例不能被克隆。

例子

下面的例子顯示了lang.Object.clone()方法的使用。

package com.yiibai;

import java.util.GregorianCalendar;

public class ObjectDemo {

   public static void main(String[] args) {

      // create a gregorian calendar, which is an object
      GregorianCalendar cal = new GregorianCalendar();

      // clone object cal into object y
      GregorianCalendar y = (GregorianCalendar) cal.clone();

      // print both cal and y
      System.out.println("" + cal.getTime());
      System.out.println("" + y.getTime());


   }
}

讓我們來編譯和執行上面的程式,這將產生以下結果:

Mon Sep 17 04:51:41 EEST 2012
Mon Sep 17 04:51:41 EEST 2012