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

    +82

    1. 1
    Boolean hasRefId = !node.getAttributes().getNamedItem("refid").equals(null);

    equals(null)

    Запостил: roman-kashitsyn, 18 Сентября 2014

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

    • Но ведь работает ;)
      Ответить
      • Ну, если ловить NullPointerException, то да.

        Он ещё и присваивается почему-то Boolean'у с большой буквы. Вот сборщик копается в мусоре потом, а разработчики ему даже спасибо не говорят.
        Ответить
        • > Вот сборщик копается в мусоре потом

          Сомневаюсь. Автобоксинг работает через Type.valueOf(type), а не через вызов конструктора. Поэтому использоваться всегда будет один объект Boolean.FALSE.
          Ответить
          • Да, забыла. Но всё равно без необходимости не надо использовать обёртки вместо примитивных типов.
            Ответить
        • Я бы остерегался языков, где есть два типа, различающихся регистром одной из букв. Спасибо, что не b00lean.
          Ответить
          • Да, особый статус примитивов и необходимость классов-обёрток - это давняя болячка Java, тянущаяся ещё с 1.0. Наученные горьким опытом разработчики .NET всё сразу сделали правильно.
            Ответить
          • >Я бы остерегался языков, где есть два типа,
            Расскажите, пожалуйста, сколько логических типов в языке Обжептив С?
            Ответить
          • Ладно. Можете не отвечать.
            http://nshipster.com/bool/
            #12177

            BOOL / bool / Boolean / NSCFBoolean
            Так что в жаве еще всё нормально с типами.
            Ответить
            • >> где есть два типа, различающихся регистром одной из букв.
              > BOOL / bool / Boolean / NSCFBoolean
              Одну бУкву можно проПустить случайно, а четыре - с гораздо меньшей вероятностью. ПомехоустОйчивость.
              Ответить
            • А теперь подключим <windef.h>, и питушни будет гораздо больше!
              Ответить

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