gpt4 book ai didi

java - 如何正确使用 clone() 方法?

转载 作者:行者123 更新时间:2023-11-29 07:43:08 25 4
gpt4 key购买 nike

我知道我可以这样创建一个对象

int[] list1 = {1, 2}; 
int[] list2 = list1.clone();

这通常有效。但为什么这不能正常工作:

ArrayList<Double> list1 = new ArrayList<Double>();
list1.add(1.0);
list1.add(2.0);
list1.add(0.5);
ArrayList<Double> list2 = list1.clone();

我所知道的是这段代码没问题

ArrayList<Double> list2 = (ArrayList<Double>)list1.clone();

可能因为 list1.clone() 没有返回引用类型,所以它需要 (ArrayList) 让它返回一个引用类型。

但为什么 int[] list2 = list1.clone(); 可以工作?

最佳答案

ArrayListclone()方法做一个浅拷贝,你可以阅读 here .

考虑改用复制构造函数,new ArrayList(listToCopy) .像这样:

ArrayList<Double> list1 = new ArrayList<Double>();
list1.add(1.0);
list1.add(2.0);
list1.add(0.5);
ArrayList<Double> list2 = new ArrayList<Double>(list1);

至于为什么你第一次尝试做的没有奏效,clone()方法返回 Object类型,因此您需要将其转换为 ArrayList<Double>在你可以初始化另一个 ArrayList 之前用它。

关于java - 如何正确使用 clone() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28205658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com