ホームページ  >  記事  >  Java  >  Java の「toString()」メソッドが配列に対して不可解な出力を生成するのはなぜですか?

Java の「toString()」メソッドが配列に対して不可解な出力を生成するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-16 11:01:03343ブラウズ

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() 実装が以下を含む不可解な文字列:

  • [ (左括弧)
  • C (要素タイプ、文字の 'C')
  • @ (区切り文字)
  • アイデンティティ ハッシュ コード (配列の一意の識別子)

解決策

人間が読める配列の文字列表現を取得するには、代わりに static Arrays.toString() メソッドを使用します:

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

このメソッドは、必要な "abcdef" 文字列を明示的に返します。

理論的根拠

配列に不可解な toString() 実装を使用するという選択は、多くの場合間違いとみなされます。この設計の背後にある意図は、デバッグ時にメモリ アドレスを優先することであると思われますが、日常使用では役立つというよりも混乱を招くことが判明しました。

以上がJava の「toString()」メソッドが配列に対して不可解な出力を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。