Ответ 1
Я обнаружил, что когда я выбираю значение в панели "Переменные" в отладчике, его значение показано ниже с помощью метода toString(). Это хорошо работает для карт, например.
Недавно я начал использовать Eclipse после использования IntelliJ в течение нескольких лет. При отладке карты с использованием IntelliJ, если ключ или объект реализует toString(), отображается хороший список строкового представления значения ключа.
В Eclipse, когда я выбираю Показать логическую структуру, я вижу примерно следующее:
Проблема с этим представлением заключается в том, что вам нужно будет развернуть каждую запись, чтобы увидеть фактический ключ и значение. Если вам нужно найти что-то на карте из более чем 10 элементов, это становится очень утомительным.
Я понимаю, что вы можете сделать пользовательскую логическую структуру и по умолчанию для Map выглядеть следующим образом:
return entrySet().toArray();
Есть ли какой-либо способ: через настраиваемую логическую структуру или плагин, чтобы просмотреть записи карт более полезными, чем
ConcurrentHashMap$WriteThroughEntry (id=193)
Я обнаружил, что когда я выбираю значение в панели "Переменные" в отладчике, его значение показано ниже с помощью метода toString(). Это хорошо работает для карт, например.
Вам нужно создать форматировщик деталей поверх логической структуры. В приведенном ниже примере скриншота ваша логическая структура - ConcurrentHashMap $WriteThroughEntry. Вы можете добавить форматировщик деталей, щелкнув правой кнопкой мыши на строке, содержащей ConcurrentHashMap $WriteThroughEntry, и выбрав 'add detail formatter'.
Я только что нажал этот пример, используя HashMap.
java.util.HashMap$Entry // key + " - " + value
При a
HashMap<Integer,String> map;
.. Я быстро заселен мусором, теперь вижу:
Ну, я сделал уродливое обходное решение. Настройте этот формат форматирования для карты:
StringBuilder detail = new StringBuilder();
int i = 0;
for (Object k : keySet()) {
detail.append((i++) + ": " + k + "\n");
}
return detail;
Затем в выводе этого найдите индекс записи с нужным ключом, затем найдите эту запись в дереве логической структуры.
Он работает, но сам формат форматирования немного медленный, и для этого требуется дополнительный шаг. Также ключи не сортируются, поэтому поиск ключа, который вы хотите на большой карте, может быть затруднен (хотя сортировка теоретически может быть выполнена в форматировании).
Просто используйте "Показать логическую структуру" в окне выражений, чтобы сделать значения более читабельными. Проверь это https://blog.codecentric.de/en/2013/04/again-10-tips-on-java-debugging-with-eclipse/