2010-05-13 4 views
49

Когда я делаю System.out.println(map) в Java, я получаю хороший вывод в stdout. Как я могу получить такое же строковое представление Map в переменной без вмешательства со стандартным выходом? Что-то вроде String mapAsString = Collections.toString(map)?Map to String в Java

ответ

95

Использование Object#toString().

String string = map.toString(); 

Это ведь и то, что делает System.out.println(object) под капюшонами. Формат карт описан в AbstractMap#toString().

+2

Нажатие кнопки F3 на карте ToString() метод является недостоверным! Обращается прямо к Object.toString() - должен подумать, прежде чем заниматься F3 – Adam

+1

@Adam, это потому, что вы вызываете toString() на интерфейсе, где этот метод, конечно, не определен. Ваша IDE не знает о фактической реализации во время выполнения. Вы не должны винить ее. –

+0

@VictorDombrovsky Любая полупринятая IDE (например, IntelliJ, Eclipse и т. Д.) Должна иметь возможность отслеживать фактическую реализацию метода, определенного в интерфейсе. – wheeler

8

Вы также можете использовать Google-коллекции (гуавы) класс столяра, если вы хотите настроить формат печати