所有類都繼承自Object類,Object裏有一個方法就是toString(),那麼所有的類創建的時候,都有一個toString的方法。
Object類中的toString()方法的源代碼如下:
/**
* Returns a string representation of the object. In general, the
* {@code toString} method returns a string that
* "textually represents" this object. The result should
* be a concise but informative representation that is easy for a
* person to read.
* It is recommended that all subclasses override this method.
* <p>
* The {@code toString} method for class {@code Object}
* returns a string consisting of the name of the class of which the
* object is an instance, the at-sign character `{@code @}', and
* the unsigned hexadecimal representation of the hash code of the
* object. In other words, this method returns a string equal to the
* value of:
* <blockquote>
* <pre>
* getClass().getName() + '@' + Integer.toHexString(hashCode())
* </pre></blockquote>
*
* @return a string representation of the object.
*/
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
因爲數組類中並沒有對toString方法的重寫(override),僅僅是重載(overload)爲類的靜態方法(參見java.util.Arrays)。所以,數組直接使用toString()的結果也是[類型@哈希值]。
所以數組轉爲字符串應寫成:Arrays.toString(A)