Отладчик Java Eclipse, получающий результаты вызовов методов - PullRequest
4 голосов
/ 11 февраля 2010

У меня есть относительно сложный объект, в котором, помимо прочего, есть ConcurrentHashMap. В отладчике я хотел бы видеть результаты вызова метода .size (), но я на самом деле не хочу этого в своем коде, и при этом я не хочу вставлять его.

Изображение отладчика http://img153.imageshack.us/img153/1695/will.png.

Выше вы можете видеть то, что я имею в виду, но мне нравится иметь возможность каким-то образом вызывать / видеть результаты метода .size ()

Однако я вижу много ссылок на Карты, сегменты и т. Д., Но это всего лишь значения.

Просто интересно, возможно ли это?

Ответы [ 3 ]

10 голосов
/ 11 февраля 2010

В отладчике откройте представление Display. Это позволит вам оценить введенное вами выражение.

См. http://www.ibm.com/developerworks/library/os-ecbug/ в разделе «Скрапбукинг живого кода».

Вот более подробная статья: http://larsho.blogspot.com/2008/07/my-favorite-eclipse-view.html

4 голосов
/ 11 февраля 2010

В качестве альтернативы запуску метода size () в представлении «Просмотр» вы можете просто нажать кнопку «Показать логическую структуру» в окне «Переменные», и отображение вашей карты изменится, чтобы выглядело как массив записей. Размер массива равен размеру вашей Карты.

0 голосов
/ 11 февраля 2010

Я бы использовал log4j и сделал бы некоторые выходные данные отладки:

if (log.isDebugEnabled()) {
  log.debug("size: " + myConcurrentHashMap.size());
}

Таким образом .size () вызывается, только когда вы находитесь на уровне журнала отладки ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...