Подскажите пожалуйста, как можно озвучить данное условие if()
if (name == null ? !name.equals(human.name) : human.name != null) return false;
Мое предположение: Если name пуст, то если name не равно human.name ...дальше мысль теряется. Иначе если name не пустой, то если human.name не пустой ... та же ерунда мысль не улавливаю. При каком из вышеперечисленных и совпадающих условий return false;?
То, что в скобках:
Если name == null, вычисляется "!name.equals(human.name)"
Если нет, вычисляется "human.name != null"
Оба выражения возвращают тип boolean.
Ну и выражение за скобками: если (найденный boolean == true) вернуть false.
Вообще, в таким случаях надо по шагам преобразовывать код:
if (name == null ? !name.equals(human.name) : human.name != null) return false;
1 шаг: выделяем boolean
boolean flag = name == null ? !name.equals(human.name) : human.name != null;
if (flag) {
return false;
}
2 шаг: превращаем оператор ?: в просто if
boolean flag;
if(name == null) {
flag = !name.equals(human.name);
// null.equals(human.name); - выкинет NullPointerException
} else {
flag = human.name != null;
}
if (flag) {
return false;
}
3 шаг: учитывая NullPointerException
при !name.equals(human.name);
код будет равным такому:
if(name == null) {
throw new NullPointerException();
}
if (human.name != null) {
return false;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Создаю новый проект, в нем класс и форму, добавляю в JPanel кнопку, но почему-то не могу ни поменять её размер, ни перетащить в другое место на панели,...