2012-05-09 117 views
1

如果我有一個具有toString方法的對象數組,並使用for循環打印數組(例如:只需array[i]即可達到對象並執行System.out.println(array[i])),那麼toString方法會自動調用?這似乎是,但我只是想檢查這到底是怎麼回事。Java - 打印類

回答

5

是的,會的。

實際上,通過隱式調用.toString()這樣做的好處是可以在不引發異常的情況下處理空值。如果array[i]nullthen 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()