employees = null;
if (!employees.isEmpty())
System.out.println("Hi");
Даёт результат
Exception in thread "main" java.lang.NullPointerException
at com.javarush.test.level15.lesson09.task05.Solution.main(Solution.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Метод isEmpty() хорош, когда надо сравнить строку, для которой выделена память с ""
Единственный момент, который хотелось бы упомянуть – сравнение с литералами. Я часто вижу конструкции типа str.equals(«abc»). И тут есть небольшие грабли – перед этим сравнением правильно бы было сравнить str с null, чтобы не получить NullPointerException. Т.е. правильной будет конструкция str != null && str.equals(«abc»). Между тем – ее можно упростить. Достаточно написать всего лишь «abc».equals(str). Проверка на null в этом случае не нужна.
То есть, рекомендуется !"".equals(employees)
Так как "" уже являются объектом типа String, то мы можем проверить на пустоту и строковый объект employees.
Но есть проблема
Если employees=null, то код
employees = null;
if (!"".equals(employees))
System.out.println("Hi");
ну вот это точно, а что еще?
Даёт результат
Метод isEmpty() хорош, когда надо сравнить строку, для которой выделена память с ""
Аналогом может являться !employees.equals(""). Почему это проблема, описано в www.skipy.ru/technics/strings.html
То есть, рекомендуется !"".equals(employees)
Так как "" уже являются объектом типа String, то мы можем проверить на пустоту и строковый объект employees.
Но есть проблема
Если employees=null, то код
Выведет знач