Оператор Java If

#java

#java

Вопрос:

На данный момент у меня есть этот оператор if

         if(answer4val != ""){
  

И здесь определяется answer4val

         answer4val  = c.getString(c.getColumnIndex("answer4"));
  

В основном, если answer4val пуст из базы данных, которой он является, оператор if не должен выполняться. Но это так!? Я привык к PHP, поэтому, возможно, я упускаю что-то очевидное.

Комментарии:

1. Использовать .equals не ==

2. @Erik: Это был бы совершенно хороший ответ.

Ответ №1:

Для вашего конкретного случая я бы использовал…

 if(answer4val.length() > 0){
  

и в общем случае используйте…

 if (!answer4val.equals(<stuff here>)) {
  

Помните, что в Java == есть ссылка compare, когда речь идет о таких объектах, как строки.

[обновить] При необходимости обязательно сначала проверьте наличие null, но в большинстве случаев этого делать не следует, поскольку большинство фреймворков предоставляют значение «по умолчанию» вместо null .

 if(answer4val == null) { /* bail early */
  

Комментарии:

1. equals , не equal (исправлено)

2. Я использовал ваше решение length и теперь создаю исключение nullpointer. Я использовал if(answer4val.length() > 0){

3. @Max: null и empty являются отдельными, возможно, вам потребуется сначала проверить на нулевое значение, используя if (answer4val != null amp;amp; answer4val.length() > 0){

4. @Max: NullPointerException Происходит при вызове length() метода в null . Следовательно, answer4val похоже на null . Кроме того, проверку на наличие пустого String значения лучше выполнять с помощью String.isEmpty метода, а не проверять с помощью length() метода.

5. @Max: вы можете использовать if(!"".equals(answer4val)) { ... } для предотвращения исключения NullPointerException

Ответ №2:

В Java null это не то же самое, что "" . Тот факт, что вы получаете исключение NullPointerException при использовании .equals решения, означает, что, возможно, вам не следует сравнивать с "" — вы можете сравнить с null следующим образом:

 if(answer4val != null) {
  

Однако вам, возможно, также потребуется сравнить его с "" , что вы можете сделать, например, следующим образом:

 if(answer4val != null amp;amp; !answer4val.equals ("")) {
  

В зависимости от того, чего вы пытаетесь достичь, это может быть или не быть правильным подходом.