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

    +89.1

    1. 1
    2. 2
    3. 3
    4. 4
    public boolean equals(Object o) {
        ErrorCode errorCode = (ErrorCode) o;
        return !(code != null ? !code.equals(errorCode.code) : errorCode.code != null);
    }

    бля. голову поломать можно

    Запостил: guest, 10 Июля 2009

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

    • Tinhol:
      И преобразование без проверки типа((( редкая подстава
      Ответить
    • зулин:
      помимо этого такое колличество отрицаний в условии, что читать просто невозможно.
      истинная гадость )
      Ответить
    • Кто-то решил сэкономить время )
      А вообще в методах типа equals(), конечно, надоедает писать все необходимые блоки проверок.
      Хотя для этого проще отнаследовать необходимые классы от одного, имеющего следующий код:

      public class Object2<T extends Object2<T>>
      {
      public boolean equals(Object o)
      {
      if (o == null)
      {
      return false;
      }
      if (o == this)
      {
      return true;
      }
      if (this.getClass().isAssignableFrom(o.getC lass())) // Мы не знаем тип наследника, поэтому нельзя использовать instanceof
      {
      return true;
      }

      return equalsImpl((T) o); // T extends Object2<T>, поэтому приведение никогда не сломается с ClassCastException
      }

      protected abstract equalsImpl(T o); // Сравнение объектов одного класса
      ...
      }
      Ответить
    • Когда внедорожник притормозил у его дома, Вит не захотел устраивать сопливых сцен - он уже всё детально продумал.
      Ответить

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