当给定类的数组时,Java重载toString()方法
这就是如何重载当给定类的数组时,Java重载toString()方法,java,arrays,object,overriding,tostring,Java,Arrays,Object,Overriding,Tostring,这就是如何重载toString()方法: public class Person extends Object { @Override public final String toString() { Gson gson = new GsonBuilder().serializeNulls().create(); return (gson.toJson(this)); } } 在本例中,当调用Person的toString()方法时,我得
toString()
方法:
public class Person extends Object {
@Override
public final String toString() {
Gson gson = new GsonBuilder().serializeNulls().create();
return (gson.toJson(this));
}
}
在本例中,当调用Person
的toString()方法时,我得到一个JSON字符串,而不是对象的默认字符串表示形式
但是如果我有一组人
呢
Person[] persons = new Person[3];
System.out.println(persons.toString());
在这种情况下,我必须做什么,或者必须覆盖哪些方法?您不能覆盖“阵列”版本,因为它们不是阵列版本。真正发生的事情是数组有一个将被调用的toString方法
如果您使用的是Java集合而不是数组,则当集合#toString
在集合中的每个对象上迭代时,它将打印出您的Person#toString
方法3倍。您不能覆盖“数组”版本,因为它们没有数组版本。真正发生的事情是数组有一个将被调用的toString方法
如果您使用的是Java集合而不是数组,那么它会将集合的toString
方法打印3倍于集合的toString
对集合中的每个对象进行迭代。您不能覆盖默认数组的toString
。如果要将对象数组转换为字符串,请使用Arrays.toString()
您不能覆盖默认数组的toString
。如果要将对象数组转换为字符串,请使用Arrays.toString()
您不能在数组上覆盖methodtoString
,但可以使用Arrays.toString(Object[])
打印数组。您不能在数组上覆盖methodtoString
,但可以使用Arrays.toString(Object[])
打印数组。首先,您不需要扩展对象,默认情况下它就在那里
要打印阵列内容,您可以使用:
Person[] persons = new Person[3];
System.out.println(Arrays.toString(persons));
首先,您不需要扩展对象,它默认存在
要打印阵列内容,您可以使用:
Person[] persons = new Person[3];
System.out.println(Arrays.toString(persons));
它将调用数组toString方法。这就是我所说的,“如果数组有一个toString方法,那么会发生什么”你是对的,但它不会尝试调用Person#toString。实际上,这让我好奇,是否可以使用反射/插装API重写数组变量的toString()方法。可能不是。我在考虑java集合,我修改了我的答案,它将调用数组toString方法。这就是我说的,“如果数组有一个toString方法,会发生什么事情”你是对的,但它不会尝试调用Person#toString。实际上,这让我好奇是否有可能重写toString()使用反射/检测API的数组变量的方法。可能不是。我在考虑java集合,我修改了我的答案。这是不可能的,但可以使用array.toString(Object[]a);它将对数组中的每个对象调用toString()方法。为什么要向下投票并请求关闭此问题?我的意思是,是的,还有一个类似的问题,但我找不到,因为有很多方法可以问这个问题。感谢您的帮助,我将使用Arrays.toString(Object[]a)
。这是不可能的,但您可以使用Arrays.toString(Object[]a);它将对数组中的每个对象调用toString()方法。为什么要向下投票并请求关闭此问题?我的意思是,是的,还有一个类似的问题,但我找不到,因为有很多方法可以问这个问题。感谢您的帮助,我将使用Arrays.toString(Object[]a)
。