А почему в java нету готовых методов, которые бы позволяли парсить числа, не кидая исключений? Т.е. возвращали бы true+число, либо false, типа как int.TryParse в дотнете.
Согласно Java Guidelines, если есть два способа реализовать функциональность - правильный и медленный - необходимо выбрать второй вариант, иначе мейнфреймы будут плохо продаваться.
Если кратко, то стандартную библиотеку Java писали студенты за еду. Это реально адов пиздец. Нет ничего нужного вообще. Даже работу со стандартными типами данных умудрились испоганить.
А в чем их возвращать? Можно сделать class что-то вроде MutableInteger, но как-то не очень красиво. Можно возвращать Object[] - но это совсем уж извращение.
Чем так сильно отличает возвращение статуса от кидания исключения?
Есть постулат, что строка, не подходящая по формату для преобразования в число - это идеологически не исключение, а вполне штатная ситуация. Потому правильны метод - возвращающий bool результат преобразования, а если все хорошо, то еще и модифицирующий переменную, которую мы ему указали.
Там, где ОЖИДАЕТСЯ некорректный ввод (правильность формата не проверена на ГУИ), должен использоваться NumberFormat. Там есть всё, что душа пожелает для "TryParse"
Про Guava уже всё как надо рассказали. И ещё можно добавить, что в apache commons lang есть math.NumberUtils, который тоже это умеет. И в любой мало-мальский проект эта либа какими-нибудь зависимостями да притянута.
Но вообще проблема системная. Питонисты, например, не умеют без KeyError когда у них ключ в мапе не нашёлся, и ничего, тишина, никто не возмущается.
no subject
no subject
(no subject)
(no subject)
no subject
no subject
no subject
(no subject)
(no subject)
(no subject)
no subject
Хватит уже поддерживать этот миф.
(no subject)
(no subject)
no subject
(Anonymous) 2013-03-21 08:33 am (UTC)(link)no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
no subject
Если вы нихера не знаете, зачем лжёте?
Стандартную библиотеку в Sun писал сам Гослинг -- умный осилит загуглить, а вам незачем.
О том, что "нужно" людям, хорошо говорит факт отсутствия альтернативных библиотек. Проблемы в вас.
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
void Integer.tryParse( String input, (int -> void) callback)
no subject
void Integer.tryParse( String input, async (int -> void) callback)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
no subject
http://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html#parse%28java.lang.String,%20java.text.ParsePosition%29
во всех видах, позах, вариантах
no subject
no subject
no subject
no subject
(no subject)
(no subject)
no subject
Можно возвращать Object[] - но это совсем уж извращение.
Чем так сильно отличает возвращение статуса от кидания исключения?
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
no subject
no subject
Но вообще проблема системная. Питонисты, например, не умеют без KeyError когда у них ключ в мапе не нашёлся, и ничего, тишина, никто не возмущается.
no subject
no subject
Но тут другой нюанс - а на хера париться с джавой?
no subject
no subject