首页 > Java > java教程 > 为什么 Java 的'toString()”方法会产生数组的隐秘输出?

为什么 Java 的'toString()”方法会产生数组的隐秘输出?

Barbara Streisand
发布: 2024-11-16 11:01:03
原创
425 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板