编写一个方法,它接受一个对象数组,复制它,然后 returns 它

Writing a method that takes an array of objects, copies it, then returns it

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

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());
    }

它产生位置,而不是值:

[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742
[LPackage1.PaperPublication;@15db9742

如何编写代码以 returns 值代替? (我的 类 中已经有一个覆盖的 toString() 方法)

您正在尝试打印 Object 类型的 PaperPublication 对象。 PaperPublication class 中应该有一个方法 returns 它的值。不了解PaperPublication无法给出具体答案class.

How do I write the code so it returns the values instead? (I already have an overwritten toString() method in my classes)

您正在打印整个数组而不是单个元素。

变化:

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

收件人:

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

编写 copy[i].toString() 是多余的,因为 Java 本身将访问 toString() 方法来为您的 PaperPublication 对象获取字符串表示形式。