编写一个获取对象数组的方法,复制它,然后返回它

时间:2017-10-10 05:12:21

标签: java arrays methods copy deep-copy

我想编写一个复制PaperPublication数组的方法:

createRecipe(recipe) {
  this.setState({
    recipes: this.state.recipes.concat([recipe])
  });
}

当我尝试打印出这样复制的数组时,

public static PaperPublication[] copyBooks(PaperPublication[] array)
{

    PaperPublication[] copy = new PaperPublication[array.length];
    for (int i = 0; i < copy.length; i++) {
        PaperPublication temp = array[i];
        if (temp != null) {
            copy[i] = new PaperPublication(temp);
        }
    }
    return copy;
}

它产生的位置,而不是值:

PaperPublication[] copy = driverClass.copyBooks(original);
for (int i = 0; i < 12; i++)
    {
        System.out.println(copy.toString());
    }

如何编写代码以便返回值? (我的类中已经覆盖了toString()方法)

2 个答案:

答案 0 :(得分:0)

您正在尝试打印Object类型的PaperPublication对象。 PaperPublication类中应该有一个返回其值的方法。如果不了解PaperPublication类,就无法给出具体答案。

答案 1 :(得分:0)

  

如何编写代码以便返回值? (我的类中已经覆盖了toString()方法)

您正在打印整个阵列而不是单个元素。

更改:

System.out.println(copy.toString());

System.out.println(copy[i]);

编写copy[i].toString()是多余的,因为Java本身将访问toString()方法以获取PaperPublication对象的String表示。