- 1
if (getHook() != null ? !getHook().equals(pmCounty.getHook()) : pmCounty.getHook() != null) return false;
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+71.1
if (getHook() != null ? !getHook().equals(pmCounty.getHook()) : pmCounty.getHook() != null) return false;
Код западной enterprise системы для риэлторов. Написан русскими.
Пожалуйста опиши в нескольких словах, что этот код делает.
if ((getHook() != null && !getHook().equals(pmCounty.getHook())) || (getHook() == null && pmCounty.getHook() != null)) return false;
if (h1 == null)
return false;
Hook h2 = pmCounty.getHook();
if (h2 == null)
return false;
return h1.equals(h2);
return false;
что-то запутался, помогите!
если уж на то пошло:
Hook h1 = getHook();
Hook h2 = pmCounty.getHook();
if (h1 == null) {
if (h2 != null)
return false;
} else {
if (!h1.equals(h2))
return false;
}
так может вообще откажемся от тернарного оператора, булевых операций и т. д.?
я тупой и для меня ето выглядит как глючный тест на еквиальность хуков.
getHook() != pmCounty.getHook()
или хотя бы так:
!Hook.equals(getHook(), pmCounty.getHook())
и это возможно в C#, но не в Java
public static <T> boolean equals(T value1, T value2) {
return value1 != null ? value1.equals(value2) : value2 == null;
}
!Nvl.equals(getHook(), pmCounty.getHook())
работает для любых типов
а кидаться платформу менять только потому, что там есть пара кусочков синтаксического сахара это клиника
Когда пошагово проходишь подобный код, и он работает не так, как ожидается, хочется кому-нибудь оторвать руки =)
Ведь так просто разбить его на несколько простых участков, чтобы и читалось легко, и дебаггилось нормально!