为什么 toString() 方法不能满足数组
在 Java 中,toString() 方法是将对象转换为数组的便捷工具他们的人类可读的字符串表示形式。然而,当应用于数组时,它的行为可能会很奇怪。
问题:
当尝试使用 toString() 将字符数组转换为字符串时,Java 不会提供预期的输出。相反,它会生成一个令人困惑的字符串,其中包含括号、表示数组元素类型的字符(“C”表示 char)以及数字哈希码(“[C@e53108”)。
解释:
Java 对数组的默认 toString() 实现旨在返回数组的类型及其“身份哈希码”,这是内存中数组对象的唯一标识符。此信息主要用于调试目的,而不是供人类使用。
解决方案:
为了获得人类可读的数组表示,Java 提供了替代方法称为 Arrays.toString()。此方法将数组元素转换为逗号分隔的字符串,从而提供更易于访问的输出。
在示例代码中,以下修改解决了问题:
System.out.println(Arrays.toString(Array));
通过使用数组。 toString(),输出现在按预期正确返回“abcdef”,没有任何乱码。
历史错误?
Java 对数组的默认 toString() 行为经常被批评为“错误”,因为它可能令人困惑且不直观。一些开发人员认为,默认情况下它应该以更有意义的方式返回数组的元素,类似于 Arrays.toString()。
以上是为什么 Java 中的 toString() 无法将数组转换为人类可读的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!