Jawa / Говнокод #9588 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
public static boolean areEquals(Object [] ... paires){
        for(Object [] paire : paires){
            if(paire[0] == null || !paire[0].equals(paire[1])){
                return false;
            }
        }
        return true;
    }

Целый день убил из-за этого говна

Запостил: roman-kashitsyn roman-kashitsyn, (Updated )

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

  • А в чем проблемы-то? Не знают о Map.Entry или не могут в свой KeyValue?
    Но я бы, из-за своей лени, сделал одним varargом четных-нечетных пар.
    Ответить
    • c нулами не работает. я в другом месте в проекте аналогичный метод написал, как раз с вараргом объектов.
      Ответить
      • Ну забыл поставить проверку. Ну отвалится с исключением.
        Так это ж самая типичная жабоошибка.
        В общем чёто не смешно.
        Ответить
        • Автор применял свой метод примерно вот так:
          return areEquals(
              new Object[] {o1.firstName(), o2.secondName()},
              new Object[] {o1.secondName(), o2.secondName()},
              new Object[] {o1.address(), o2.address()});
          Ответить
      • Хороший код. И функция равенства получше моей будет:
        return (a==b) ||
        a == null ? b == null : a.equals(b);
        Но откуда нелюбовь к циклам for( int i = 0;i < objects.length;i+=2)?
        Ответить
  • > paires
    > paire
    Французские идентификаторы - плохая примета
    Ответить
  • Инкапсулировать все эти имена и адреса в один объект и переопределять у него метод equals() - похоже, непосильная задача.
    Или аффтар испугался, что ему ещё и hashCode() переписывать придётся?
    Ответить
    • На самом деле этот код предназначается для того, чтобы "пофиксить" ворнинги Sonar: он не позволяет объединять более трёх булевских выражений в одном условии (а иногда это реально нужно). Можно, конечно, вводить несколько промежуточных переменных, но pairsEqual позволяет спрятать все эти условия в один вызов метода (да, донести до начальства, что Sonar - лишь куча бесполезного говна (особенно с текущими настройками), у нас так и не получилось. Лучше бы юнит тесты нормальные писать начали...). Хак придумал я и даже написал нормальную реализацию. Коллега почему-то решил изобрести свой велосипед (см. топик).
      Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8