配列に対する 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() 実装が以下を含む不可解な文字列:
解決策
人間が読める配列の文字列表現を取得するには、代わりに static Arrays.toString() メソッドを使用します:
System.out.println(Arrays.toString(Array));
このメソッドは、必要な "abcdef" 文字列を明示的に返します。
理論的根拠
配列に不可解な toString() 実装を使用するという選択は、多くの場合間違いとみなされます。この設計の背後にある意図は、デバッグ時にメモリ アドレスを優先することであると思われますが、日常使用では役立つというよりも混乱を招くことが判明しました。
以上がJava の「toString()」メソッドが配列に対して不可解な出力を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。