![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
foreach не работает?
|
|||
|
||||
Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: нет Всего: 16 |
Для Enumeration? Ну проверьте. |
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
foreach тут как бы не нужен, почитать почему можно здесь.
вкратце:
|
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Если я правильно помню, foreach требует Iterable, а не Iterator.
|
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
Все правильно помните, осталось только глянуть что из себя представляет Iterable.
|
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Но можно же кидать исключение на remove(), для кого foreach придумали-то?
|
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
Почти уверен, что и такой подход оскорбил бы Вас не менее: что за хрень! в жава есть классы, имеющие паблик методы remove! но на попытку удалить там что то оно мне ругается! ай-ай! какие они там все балбесы, спросили бы у меня, я б им сказал как надо!
![]() |
|||
|
||||
jk1 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: нет Всего: 75 |
Не такая уж и хрень. Если вспомнить доки на java.util.Iterator, то там операция remove() заявлена как optional, то есть она может не быть реализована и кидать UnsupportedOperationException:
Так что реализация Enumeration'ом интерфейса Iterable контракта не нарушает. -------------------- Opinions are like assholes — everybody has one |
||||
|
|||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
Вынужден признать свою неправоту и принести свои извинения товарищам по цеху, за безосновательный пафос! И принять этот красивый подсрачник в награду.
Тогда действительно, наблюдается избыточность, наверное Enumeration, существующий с 1.0 будет умирать. А все казалось таким красивым. |
|||
|
||||
Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: нет Всего: 28 |
А как сделать лучше напишете? -------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
А может попробовать самому поискать ответ ?
|
|||
|
||||
priam220 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 291 Регистрация: 4.6.2010 Репутация: нет Всего: 8 |
1. Думаю, лучше было бы сделать что то однозначное. 2. Я думаю, многие согласятся, что провайдить интерфейс, которого не должно быть согласно логической концепции объекта (например велосипеду метод startEngine() ) не совсем верно. Т.е. применительно к нашему вопросу UnmodifiableCollection<E> implements Collection<E> выглядит не совсем красиво, имхо. 3. Лучше - сложный оценочный фактор. У меня нет причин не доверять разработчикам системы, - возможно маленькие нестыковки в объектной модели языка, с лишком окупаются другими профитами. Это сообщение отредактировал(а) priam220 - 16.6.2012, 23:58 |
|||
|
||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Ситуация, когда прошло 7 с лишним лет, а некоторым авторам нинужен foreach, говорит о, как бы сказать, их отсталости. В питоне, например, вообще нет сишного for, только foreach.
|
|||
|
||||
jk1 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: нет Всего: 75 |
Karadul, а в чем собственно проблема?
Можно же делать вот так:
Функционально будет полным эквивалентом foreach. Что же до синтаксического сахара, то пора бы понять, что в Java его практически нет. Если он для Вас так важен, то берите Scala и забудьте про Java как про страшный сон. Я уже молчу о том, что Enumeration встречается достаточно редко, можно годами писать код на Java и не знать о нем.
что порождает костыли в случае, когда нужно вызвать функцию четко определенное число раз или перебрать последовательные числа:
На этом дискуссию предлагаю закрыть, так как она давно ушла в оффтоп. -------------------- Opinions are like assholes — everybody has one |
||||||
|
|||||||
Karadul |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 378 Регистрация: 18.5.2006 Репутация: нет Всего: 1 |
Это не такие страшные костыли, а foreach используется в питоне гораздо чаще for. Просто поражает упоротость (некоторых) жавоидов, 7-8 лет прошло, а им foreach, видите ли, нинужен. А другие их еще защищают. Если мосье считает, что оффтоп, предлагаю посты, начиная с оффтопа, перенести в другую тему. На сырцах вообще был раздел "религиозные войны". |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |