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

    +68

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        PortletSettings other = (PortletSettings) obj;
        if (column == null) {
            if (other.column != null)
                    return false;
        } else if (!column.equals(other.column))
            return false;
        if (configurator == null) {
            if (other.configurator != null)
                return false;
        } else if (!configurator.equals(other.configurator))
            return false;
        if (library == null) {
            if (other.library != null)
                return false;
        } else if (!library.equals(other.library))
            return false;
        if (maximize != other.maximize)
            return false;
        if (portletId == null) {
            if (other.portletId != null)
                return false;
        } else if (!portletId.equals(other.portletId))
            return false;
        if (row != other.row)
            return false;
        return true;
    }

    Запостил: yvu, 30 Сентября 2009

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

    • Ну и что не так?
      Ответить
    • все так и делается, сынок
      Ответить
    • В чём заключается говнокодность? Кэп?
      Ответить
    • Куча ретурнов посреди функции - говнокод. Тут надо было использовать вложенные условия.
      Ответить
      • Предлагаешь заменить на нечто подобное:
        private static final boolean refEquals(Object obj1, Object obj2) {
            return obj1==null ? obj2==null : obj1.equals(obj2);
        }
        
        public boolean equals(Object obj) {
            if (this==obj) return true;
            else if (obj==null || getClass!=obj.getClass()) return false;
            else {
                PortletSettings other=(PortletSettings) obj;
                return refEquals(column, other.column) && 
                       refEquals(configurator, other.configurator) && 
                       refEquals(library, other.library) &&
                       (maximize==other.maximize) &&
                       refEquals(portletId, other.portletId) &&
                       (row==other.row);
            }
        }
        Ответить
      • Не всегда. Для equals я бы использовал метод, генерируемый идеей.
        Ответить
      • Лучше ретурн посреди функции, чем вложенность наращивать.

        Я в perl вообще пишу:
        return undef unless $arg{action};

        ... поехали - основная часть
        Ответить
      • Ещё скажите, что break и continue - зло.
        Ответить
        • Сами по себе они очень даже ничего. Однако слишком многие применяли их повсеместно и не в тему, поэтому решили, что проще и безопаснее будет просто считать break и continue злом.
          Ответить
      • С кучей вложенных условий читаемочть ещё хуже
        Ответить
    • public boolean equals(Object o) {
      if (o == this)
      return true;
      if (!(o instanceof List))
      return false;

      ListIterator<E> e1 = listIterator();
      ListIterator e2 = ((List) o).listIterator();
      while(e1.hasNext() && e2.hasNext()) {
      E o1 = e1.next();
      Object o2 = e2.next();
      if (!(o1==null ? o2==null : o1.equals(o2)))
      return false;
      }
      return !(e1.hasNext() || e2.hasNext());
      }
      Ответить
    • ВЫ ВСЕ КАКАШКИ И САЙТ КАКАШКО И НИХЕРА НЕ ПОНЯТНА!111111111 АПАМИАЧСМВЯОДЫИДРШАВИОЦРУИФУЫПГШ!1111111 1111111111
      Ответить
    • Ну вообще это код сгенерирован эклипсом.
      Ответить

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