我了解到,对于数组,该clone
方法表现良好,我们可以使用它。但我认为数组持有的元素的类型应该已经实现了Cloneable
接口。让我举个例子:
public class test {
public static void main(String[] args){
Test[] arr_t = new Test[1];
arr_t[0] = new Test(10);
Test[] an_arr = arr_t.clone();
an_arr[0]= new Test(5);
System.out.println(an_arr[0].test); //5
System.out.println(arr_t[0].test); //10
}
public static class Test{
public int test;
public Test(int test) {
this.test = test;
}
}
}
我认为 5 应该打印两次。这样做的原因是通过克隆数组,我们正在创建新数组,其中包含对第一个数组持有的对象的引用(因为元素的类型没有实现Cloneable
)。你不能把事情弄清楚吗?
目前尚不清楚数组元素的类型是否需要实现Cloneable
。