1. Java / Говнокод #10232

    +79

    1. 1
    for (; e.hasMoreElements();)

    смайлокод.
    вот почему не while, объясните мне?

    Запостил: Lure Of Chaos, 10 Мая 2012

    Комментарии (10) RSS

    • так ведь смайлы же!
      Ответить
    • Ну некоторые "долбогуру" из Си мотивируют энто знаниями из сакральных анналов по реализации циклов кампилятором на уровне машинного кода, правда какое, черт возьми, имеет отношения это к Жаве?
      Ответить
    • выглядит как жертва быстрой модификации, раньше могло быть что-то типа
      // fail on empty enumeration, but you get the idea
      for (T t = e.nextElement(); e.hasMoreElements(); t = e.nextElement())
      Ответить
    • Сей код осмайляет своего создателя.
      Ответить
    • ();) - полено улыбается
      Ответить
    • Вообще стандартная идиома для итерации (см. Effective Java) выглядит так:

      for (Enumeration<Type> e = something; e.hasMoreElements();) {
          Type t = e.nextElement();
      }


      Но почему тут Enumeration вместо кошерного Iterator? Наверное, legacy API.
      Ответить
      • Стандартная библиотека java неконсистента по большей части. Там полно мест, где используются массивы вместо более удобных коллекций и енумерейшены вместо итераторов. Иногда даже собственные механизмы итерации реализованы.
        Ответить
        • >Стандартная библиотека java неконсистента по большей части
          Верно. Несбалансированное, депрекейтное говнецо, которое держат только для совместимости.
          Но в рнр всё еще хуже.
          Ответить

    Добавить комментарий