#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 ("")) {
В зависимости от того, чего вы пытаетесь достичь, это может быть или не быть правильным подходом.