![]() |
#5 |
Участник
|
Вот еще пример класса, который принимает по ссылке произвольный объект и отображает нужную информацию в отладчике через toString()
Написано было изначально чтобы ловить изменение состояния объектов, у которых нельзя перекрыть toString() (какие то паразиты придумали делать его final ![]() Также не всегда бывает удобно использовать toString() для ядреных объектов, надо создавать наследника и с ним работать. Для xrecord - toString() можно перекрыть, но почему-то результат его вывода отладчик игнорирует. Поэтому возникла идея создать свой класс, который позволит отобразить в отладчике информацию для таких "неудобных" объектов. Думаю его можно и для обсуждаемых целей применять. Можно смотреть их значения посредством toString(), если их не очень много конечно. Если много - то в методе toString() вызываем упаковку интересующего нас объекта в контейнер-переменную и (!!!) ядро дергает из отладчика метод toString() при перерисовке окна, а мы заодно обновляем состояние внутренних переменных класса вытаскивая в контейнер содержимое объекта, таким образом получаем актуальную версию состояния наблюдаемого объекта. Т.е. для обновления контейнера не надо самим из отлаживаемого кода кода дергать map.pack() или как в примере маззи table2con() ядро это сделает за нас вызывая toString() Таким образом мы в любой момент времени видим актуальные значения без дополнительного кодирования.Вложение 7026 |
|
|
За это сообщение автора поблагодарили: mazzy (5), gl00mie (15), alex55 (3), Kabardian (3). |
Теги |
временная таблица, законченный пример, как правильно, классы коллекций, отладка, отладчик |
|
|