Java.lang.Object 类

java.util.Object.clone() 方法用于创建并返回该对象的副本。 "复制"的确切含义可能取决于对象的类。一般意图是,对于任何对象 x,表达式:

x.clone() != x

将为 true,并且表达式:

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

将为 true,但这些不是绝对要求。虽然通常情况是:

x.clone().equals(x)

将为 true,但这不是绝对要求。

语法

protected Object clone()
                throws CloneNotSupportedException

参数

不需要参数。

返回值

返回此实例的克隆。

异常

如果对象的类不支持 Cloneable 接口,则抛出 CloneNotSupportedException。重写clone方法的子类也可以抛出此异常,以指示实例无法克隆。

示例:

在下面的示例中, java.util.Object.clone() 方法返回给定对象的克隆。

import java.lang.*;

public class MyClass {
  public static void main(String[] args) {
    //创建对象
    int obj1[] = {10, 5, 25, -10, -30};

    //打印obj1内容
    System.out.print("obj1 contains:"); 
    for(int i: obj1)
      System.out.print(" " + i);

    //将 obj1 克隆到 obj2 中
    int obj2[] = obj1.clone();

    //打印obj2内容
    System.out.print("\nobj2 contains:"); 
    for(int j: obj2)
      System.out.print(" " + j);
  }
}

上述代码的输出将是:

obj1 contains: 10 5 25 -10 -30
obj2 contains: 10 5 25 -10 -30