2010-05-13 153 views
49

当我在Java中执行System.out.println(map)时,我在stdout中获得了很好的输出。我怎样才能在一个变量中获得Map的这个相同的字符串表示而不需要插入标准输出?像String mapAsString = Collections.toString(map)映射到Java中的字符串

回答

95

使用Object#toString()

String string = map.toString(); 

这毕竟也是System.out.println(object)所做的。地图的格式在AbstractMap#toString()中描述。

+2

在地图上的toString按F3也可以使用谷歌的集合(番石榴)木类()方法是一种误导!直接调用Object.toString() - 在参与F3 – Adam 2015-05-21 14:36:41

+1

@Adam之前应该考虑一下,这是因为在接口上调用了toString(),当然这个方法没有定义。您的IDE不知道实际的运行时实现。你不应该责怪她。 – 2016-05-11 16:30:49

+0

@VictorDombrovsky任何半得体的IDE(例如IntelliJ,Eclipse等)都应该能够追踪接口中定义的方法的实际实现。 – wheeler 2017-03-14 14:03:10

8

,如果你想自定义打印格式