2010-05-13 29 views
49

Cuando hago System.out.println(map) en Java, obtengo un buen resultado en stdout. ¿Cómo puedo obtener esta misma representación de cadena de Map en una variable sin interferir con la salida estándar? Algo así como String mapAsString = Collections.toString(map)?Map to String en Java

Respuesta

95

Utilice Object#toString().

String string = map.toString(); 

Eso es después de todo, también lo hace System.out.println(object) bajo las capuchas. El formato para los mapas se describe en AbstractMap#toString().

+2

F3 Pulsando en el Mapa método toString() es engañosa! Lo lleva directamente a Object.toString(): debería pensar antes de vincularse con F3 – Adam

+1

@ Adam, porque llama a toString() en la interfaz, donde este método, por supuesto, no está definido. Su IDE no sabe acerca de la implementación real en tiempo de ejecución. No deberías culparla. –

+0

@VictorDombrovsky Cualquier IDE medio decente (por ejemplo, IntelliJ, Eclipse, etc.) debería ser capaz de rastrear la implementación real de un método definido en una interfaz. – wheeler

8

También puede utilizar google-colecciones (guayaba) clase Joiner si desea personalizar el formato de impresión