"Ваши последние изменения в методе
isHexNumber
были ошибочны", - сказал Вангохан. - "И хотя документации нет, само название подразумевает, что метод будет распознавать только строки, содержащие одну или более шестнадцатеричных цифр. Однако, Ваше регулярное выражение не использует якоря и имеет неправильный квантификатор. Метод вернёт true
для любой строки, в любом месте которой присутствуют ноль или более шестнадцатеричных цифр, т.е. для любой строки"."Я убедился, что существующие модульные тесты прошли", - запротестовал младший монах. - "Отвергается
null
и принимаются все правильные шестнадцатеричные цифры".Вангохан нахмурился: "Я Вам говорю, что картонная коробка не подходит для еды дочери Императора, а Вы мне отвечаете, что коза ей не подавится".
Вангохан вызвал старшего монаха, который отвечал за общую библиотеку и объяснил проблему.
"Мы не можем изменить реализацию", - сказал старший монах. - "В настоящее время этот метод используется во всём Храме. Если он вдруг станет отвергать ранее принятые строки, то может произойти катастрофа".
Вангохан ударил кулаком по столу монаха: "Я Вам говорю, что картонная коробка не подходит для еды дочери Императора, а Вы мне отвечаете, что ей может не понравиться вкус баранины и инжира".
Вангохан вызвал главного настоятеля клана Смеющейся Обезьяны и объяснил проблему.
"Я приму участие в этом обсуждении", - вздохнул настоятель. - "Должно же быть решение, удовлетворяющее все стороны".
В тот вечер Вангохан получил письмо от настоятеля, в котором утверждалось, что теперь метод должен работать точно как ожидается. Вангохан просмотрел код и обнаружил, что метод совсем не изменился, за исключением комментария сверху:
/** * isHexNumber возвращает true для любой строки, * в любом месте которой присутствуют * ноль или более шестнадцатеричных цифр. */Вангохан уронил голову на стол: "Очевидно, картонная коробка должна подходить для еды дочери Императора, ибо она присутсвует в Императорском меню".
Original: Ass-Backwards Compatibility