首頁 >Java >java教程 >為什麼 Java 的「toString()」方法會產生陣列的隱密輸出?

為什麼 Java 的「toString()」方法會產生陣列的隱密輸出?

Barbara Streisand
Barbara Streisand原創
2024-11-16 11:01:03424瀏覽

Why Does Java's `toString()` Method Produce Cryptic Output for Arrays?

Java 中不常見的陣列「ToString()」

在Java 中,toString() 方法可望提供有用的人類可讀的方法物件的字串表示。然而,在處理數組時,這種期望並不成立。

陣列ToString() 的特殊性

考慮以下程式碼:

char[] Array = {'a', 'b', 'c', 'd', 'e', 'f'};
System.out.println(Array.toString());

這段程式碼,而不是回傳預期的字串「abcdef」 「[C@6e1408」或「[C@e53108。」

出現此行為是因為Java 的預設陣列toString() 實作會產生一個神秘字串,其中包含:

  • [ (left括號)
  • C(元素類型,'C' 表示char)
  • @(分隔符號)
  • 身份雜湊碼(陣列的唯一識別碼)

要取得陣列的人類可讀取的字串表示形式,請使用靜態Arrays.toString( ) 方法相反:

System.out.println(Arrays.toString(Array));

此方法明確傳回所需的「abcdef」字串。

基本原理

Java 選擇使用神秘的 toString( ) 陣列的實作通常被視為錯誤。這種設計背後的意圖可能是在調試時優先考慮內存地址,但事實證明,它在日常使用中更令人困惑,而不是有幫助。

以上是為什麼 Java 的「toString()」方法會產生陣列的隱密輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn