参考文章:https://blog.csdn.net/qq_27093465/article/details/54970538
前不久对Arrays工具类方法进行了总结,今天刚好看到师兄的这篇文章,便进行了简单的实验。这里测试的数组元素是三个个Person对象。
ps:Arrays工具类方法→https://blog.csdn.net/zh137289/article/details/84997848
public class Test02 {
public static void main(String[] args) {
Person[] person = {new Person("Daniel",22),new Person("Eddie",21),new Person("Jessica",20)};
Person[] person2 = Arrays.copyOf(person,3);
System.out.println("原数组:"+Arrays.toString(person));
System.out.println("未修改拷贝数组:"+Arrays.toString(person2));
person2[1].setName("师兄666");
System.out.println("已修改拷贝数组:"+Arrays.toString(person2));
System.out.println("修改拷贝后的原数组:"+Arrays.toString(person));
}
}
class Person{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
结果:
可见修改了拷贝的数组,原数组也跟着改变,所以Arrays.copyof()方法是值传递。