2010-05-13 3 views
49

Quand je fais System.out.println(map) en Java, je reçois une belle sortie dans stdout. Comment puis-je obtenir cette même représentation de chaîne d'un Map dans une variable sans interférer avec la sortie standard? Quelque chose comme String mapAsString = Collections.toString(map)?Mapper en Java

Répondre

95

Utilisez Object#toString().

String string = map.toString(); 

C'est après tout aussi ce que System.out.println(object)-t sous les capots. Le format des cartes est décrit au AbstractMap#toString().

+2

Presser la touche F3 sur la carte toString() est trompeur! Vous emmène directement à l'Object.toString() - devrait réfléchir avant d'engager F3 – Adam

+1

@Adam, c'est parce que vous appelez toString() sur l'interface, où cette méthode, bien sûr, n'est pas définie. Votre IDE ne connaît pas l'implémentation réelle au moment de l'exécution. Tu ne devrais pas la blâmer. –

+0

@VictorDombrovsky Tout IDE semi-décent (par exemple IntelliJ, Eclipse, etc.) devrait être capable de suivre l'implémentation réelle d'une méthode définie dans une interface. – wheeler

8

Vous pouvez également utiliser google-collections (goyave) classe Joiner si vous voulez personnaliser le format d'impression

Questions connexes