- 1
- 2
- 3
- 4
override public function toString():String
{
return Object(container).toString() + "." + super.toString();
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−184.5
override public function toString():String
{
return Object(container).toString() + "." + super.toString();
}
Еще одно украшение Флексового фреймворка: mx.core::Repeater.
Для тех, кто не в курсе: toString() вызываетйса автоматически когда мы пытаемся вывести информацию об объекте в консоль. (Т.е. жизненно необходим для тестирования). Свойство container у репитера радко, но может буть null, но изза того, что флексовые разработчики не категорически никогда не кастуют ничего, то это должно было бы выкинуть исключение, но, конвертация используемая в примере (вместо каста) в силу особенностей языка вместо того чтобы просто умереть с исключением создаст новый динамический объект, врезультате получим что-то типа:
"[Object object].имяКомпонента".
т.е. на самом деле код должен был выглядеть примерно так:
return (this.container ? this.container.toString() + "." : "") + super.toString();
wvxvw 05.02.2010 23:29 # 0
(Прошу прощения - куча ошибок, надо больше спать...)
guest 06.02.2010 22:41 # 0
Настолько я помню, null объектом не является во флеше, прога выпадет.
Ну в общем, это не совсем прям говнокод. Скорее баг, который надо запостить в соответстующие органы =)
guest 07.02.2010 03:24 # 0
guest 12.02.2010 15:38 # 0
дока - http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Object.html#toString%28%29
guest 12.02.2010 17:26 # 0