我偶然发现了一个问题,我必须创建一个方法,该方法不接受输入并返回此篮子的 MarketProduct 数组的浅表副本(不是引用的副本)。
我知道解决方案如下
public class Basket {
private MarketProduct[] marketproducts;
public Basket() {
this.marketproducts = new MarketProduct[0];
}
public MarketProduct[] getProducts() {
return this.marketproducts.clone();
我不明白的是 1. 如果它是浅拷贝那么它就是引用的副本吗?2.我可以对java中的任何对象使用clone方法吗?它复制引用还是实际对象?如果是这样,那么可以简化以下内容(而不是使用 for 循环,我可以使用克隆?)?
public void add(MarketProduct input) {
MarketProduct[] list = new MarketProduct[marketproducts.length];
for(int i = 0; i < marketproducts.length; i++) {
list[i] = marketproducts[i];
}
list[list.length-1] = input;
this.marketproducts = list;
}
小怪兽爱吃肉
拉莫斯之舞
相关分类