Если условия проверки на выход из цикла написаны в таком порядке, то получаю NullPointerException
while (true) {
catname = reader.readLine();
if (catname.isEmpty() || catname == null) {
break;
}
Cat cat = CatFactory.getCatByKey(catname);
System.out.println(cat.toString());
}
Однако если поменять местами условия проверки, то никаких исключений, а собственно в чем отличие
этих вариантов, ведь условия разделены логическим ИЛИ?
if (catname == null || catname.isEmpty()) {
Сергей
18 уровень
NullPointerException
Решен
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
(@__@)
8 июля 2020, 12:04решение
"или" - ленивый оператор. если первое условие тру, то дальше он проверять не будет.
из емпти проверяет пустая ли строка.
а null значит, что нет линка на объект.
ессно, если проверка на пустоту идет первой, а объекта - нема, то компилятор ругаетцо
+2