【发布时间】:2012-05-09 12:12:10
【问题描述】:
如果我有一个包含 toString 方法的对象数组,并且我使用 for 循环打印该数组(例如:只需 array[i] 来访问对象并执行 System.out.println(array[i])),是否会自动调用 toString 方法?似乎是,但我只是想检查一下这是怎么回事。
【问题讨论】:
标签: java arrays methods tostring
如果我有一个包含 toString 方法的对象数组,并且我使用 for 循环打印该数组(例如:只需 array[i] 来访问对象并执行 System.out.println(array[i])),是否会自动调用 toString 方法?似乎是,但我只是想检查一下这是怎么回事。
【问题讨论】:
标签: java arrays methods tostring
是的,会的。
事实上,这样做比隐式调用.toString() 的优点是可以处理空值而不抛出异常。如果array[i] 是null,then 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()。
【讨论】:
【讨论】: