如果我有一个对象数组,它有一个 toString 方法,我使用 for 循环打印数组(例如:简单地 array[i]
到达对象并执行 System .out.println(array[i])
) 会自动调用 toString 方法吗?似乎是,但我只是想检查这是怎么回事。
最佳答案
是的,会的。
事实上,与隐式调用 .toString()
相比,这样做的好处是可以在不抛出异常的情况下处理空值。如果 array[i]
为 null
,则 System.out.println(array[i])
将打印 null
其中 System.out.println(array[i].toString())
将抛出一个 NullPointerException
。
这是因为 System.out.println(object)
方法调用 System.out.print(object)
而 String.valueOf(object)
依次调用 object.toString()
。
关于Java - 打印一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515820/