2015-07-27 2 views
-4
.
filterType = 0; 

      if((Name != " " && !Name .isEmpty()) |(userName != " " && !userName.isEmpty()) | userLock == true | (HQ != " " && !HQ.isEmpty()) | Area != 0.0 | Route != 0.0 | (Label != " " && !Label.isEmpty())){ 

       filterType = filterType + 1; 
      } 



      if((Phone != " " && !Phone.isEmpty()) | (URL != " " && !URL.isEmpty()) |(City != " " && !City.isEmpty()) | (Date != " " && !Date.isEmpty())| (Email != " " && !Email.isEmpty())){ 
       filterType = filterType + 2; 

      } 
. . .

. Если какая-либо из приведенных выше строк содержит значение, то добавьте тип фильтра, но java выбрасывает исключение из null-указателя. Как я могу исправить Это ?Как я могу проверить, что моя строка имеет значение null или нет, и при проверке значения null или нет. Java выбрасывает исключение нулевого указателя.

+2

'name! = Null' string not' null' – Satya

+2

userName.isEmpty() предоставит вам исключение nullpointer, если оно равно null, поэтому убедитесь, что оно '! = Null' сначала – BoDidely

+3

Прочитать http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java, а затем тщательно подумайте о том, что это будет делать в вашем случае, если 'Name' является пустой ссылкой ... –

ответ

0

При проверке, если String в Java null, вы могли бы использовать

name == null. Это возвращает true, если ваш String фактически null

Обратите внимание, что я намеренно изменил имя переменной из Name в name. имена переменных никогда не должны начинаться с буквы верхнего регистра, поскольку это обычно используется для определений классов. Практически каждый разработчик Java мог бы прочитать ваш код, если вы не следуете этому соглашению.

0

Действуйте так:

if(name != null && !" ".equals(name) && !name.isEmpty()) { 
    .... 
} 
  • Оценить если объект null перед вызовом метода на нем
  • Предпочитают " ".equals(name) вместо name.equals(" "), потому что это другие ситуации (это не один) name может быть null
  • Никогда не сравнивайте значение String с ==, но всегда используйте equals()
    How do I compare strings in Java?
  • | является побитовое или: может быть, вы имеете в виду короткого замыкания или|| в коде? См Nathan Hughes' comment
  • Рассмотрим на имя всегда переменные в нижнем регистре и верблюжьего корпуса буквы
  • Drive только если не пьян

... или рассмотреть, чтобы написать функцию, чтобы проверить общие недопустимые значения:

static boolean isUseless(String value) { 
    return value == null || " ".equals(value) || value.isEmpty(); 
} 

... или конвертировать ваши строки перед использованием:

static String convertToNotNull(String value) { 
    return value == null ? "" : value.trim(); 
} 
Смежные вопросы