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
49
A
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()
.
8
Vous pouvez également utiliser google-collections (goyave) classe Joiner si vous voulez personnaliser le format d'impression
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
@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. –
@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