当前位置 博文首页 > 沉默王二:教妹学Java:数组打印最优雅的方式deepToString
“哥,之前听你说,数组也是一个对象,但 Java 中并未明确的定义这样一个类。”看来三妹有在用心地学习。
“是的,因此数组也就没有机会覆盖 Object.toString()
方法。如果尝试直接打印数组的话,输出的结果并不是我们预期的结果。”我接着三妹的话继续说。
“那怎么打印数组呢?”三妹心有灵犀地把今天的核心问题提了出来。
“首先,我们来看一下,为什么不能直接打印数组,直接打印的话,会出现什么问题。”
来看这样一个例子。
String [] cmowers = {"沉默","王二","一枚有趣的程序员"};
System.out.println(cmowers);
程序打印的结果是:
[Ljava.lang.String;@3d075dc0
[Ljava.lang.String;
表示字符串数组的 Class 名,@ 后面的是十六进制的 hashCode——这样的打印结果太“人性化”了,一般人表示看不懂!为什么会这样显示呢?查看一下 java.lang.Object
类的 toString()
方法就明白了。
public String toString(</