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