这是你重载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
在这种情况下,我该做什么或必须覆盖哪种方法?
答案 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));