雖然java.lang.Object提供了toString實現,以下java
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
它包含類名稱,一個"@"符號,以及散列碼的無符號十六進制表示法。但這通常不是咱們所但願看到的。所以建議全部子類覆蓋這個toString方法。提供好的toString實現可使類用起來更加溫馨,當對象被傳遞給println、printf、字符串聯操做符(+)以及assert或者被調試器打印出來時,toString方法會被自動調用。程序員
兩個建議:編程
1.不管是否決定指定格式,都應該在文檔中明確地代表意圖,經過文檔註釋來講明。spa
2.不管是否指定格式,都爲toString返回值中包含的全部信息,提供一種編程式的訪問途徑,如使用getter方法提供。不然程序員必須去解析字符串,而這會致使大量沒必要要的工做量和增長程序出錯的可能性。調試