Бесконечная рекурсия в toString
Недавно натолкнулся на интересную проблему в абсолютно стандартном и простом методе. Нужно осторожно реализовывать метод toString, потому что можно случайно вызвать бесконечную рекурсию. Например, такой код вызовет исключение в встроенном методе флеш плеера.
Метод trace вызывает toString у массива, во внутренней его реализации для каждого элемента, включая сам массив вызывается метод toString и так до бесконечности.
Варианты решения:
Эта проблема довольно надуманная, поэтому лучше на нее забить — в крайнем случае можно проверить на this, если будет необходимость хранить элемент внутри элемента.
Всего комментариев 0
Комментарии
Последние записи от Яски
- Инициализатор класса (05.11.2009)
- О пакетах классов (03.11.2009)
- valueOf в AS3 (07.10.2009)
- Сравнение строк в естественном порядке для Flash (18.05.2009)
- Быстрый Math.round для положительных чисел (17.01.2009)