给定数组的类时,Java重载toString()方法

时间:2013-06-06 19:22:57

标签: java arrays object override tostring

这是你重载toString()方法的方法:

public class Person extends Object {
    @Override
    public final String toString() {
        Gson gson = new GsonBuilder().serializeNulls().create();
        return (gson.toJson(this));
    }
}

在此示例中,我在调用toString()的{​​{1}}方法时获取了JSON字符串,而不是Person的默认字符串表示形式。

但是,如果我有一个Object数组,那该怎么办?

Person

在这种情况下,我该做什么或必须覆盖哪种方法?

4 个答案:

答案 0 :(得分:2)

您无法覆盖“阵列”版本,因为它们不是阵列版本。真正发生的是Array有一个将被调用的toString方法。

如果您使用的是Java集合而不是数组,它会打印出Person#toString方法3次,因为Collection#toString会迭代集合中的每个对象。

答案 1 :(得分:1)

您无法覆盖默认数组的toString。如果要将对象数组转换为字符串,请使用Arrays.toString()

答案 2 :(得分:1)

您无法覆盖数组上的方法toString,但可以使用Arrays.toString(Object[])打印数组。

答案 3 :(得分:1)

首先,您不需要扩展Object,默认情况下它就在那里。

要打印您可以使用的阵列内容:

Person[] persons = new Person[3];
System.out.println(Arrays.toString(persons));