如何使Object[]可克隆?

4
Object[] o = new Object[]{};
System.out.println(o instanceof Cloneable);

这将输出 true。我不明白为什么会这样?
2个回答

10

Java中的所有数组都是可克隆和可序列化的。

对数组进行克隆只会复制数组本身(浅拷贝,不会克隆数组内容)。


4

数组支持(浅层)克隆。

来自JLS第10.7节

数组类型的成员包括以下所有内容:

  • 公共 final 字段 length,包含数组组件的数量(length 可以是正数或零)。
  • 公共方法 clone,它重写了 Object 类中同名的方法,并且不会抛出已检查异常。数组类型 T[] 的 clone 方法的返回类型是 T[]。
  • 从类 Object 继承的所有成员;唯一没有继承的 Object 方法是其 clone 方法。

每个数组都实现了接口 Cloneable 和 java.io.Serializable。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接