2016-11-14 8 views
-4

это мой код, чтобы проверить, если значение столбца не является нулевымПроверить возвращаемое значение по Рез равно нулю

if(!res.getString(res.getColumnIndex("answerquestionid")).trim().equals("")){

, но я получаю это:

java.lang.NullPointerException: Попытка вызвать виртуальный метод «java.lang.String java.lang.String.trim()» по ссылке нулевого объекта

Каков правильный способ проверить, является ли val у.е. возвращение Реза пусто

+0

похоже, что res имеет значение null в if-statement. пожалуйста, предоставьте еще один код – XtremeBaumer

+0

Попробуйте это, если (res.getString (res.getColumnIndex ("answerquestionid"))! = null &&! res.getString (res.getColumnIndex ("answerquestionid")). trim(). equals ("")) – Raghavendra

+0

@Raghavendra это ошибка возврата '! Res.getString (res.getColumnIndex (" answerquestionid ")). Trim() .equals (" ")', но первый из них в порядке, вы можете предоставить его как ответ так я могу закрыть OP? –

ответ

1

Попробуйте это,

if(res != null){ 
    if(res.getString(res.getColumnIndex("answerquestionid")) != null && !res.getString(res.getColumnIndex("answerquestionid")).trim(‌​).equals("")) 

//your stuff 

} 
+0

Я получаю ошибку, если я включаю этот '&&! Res.getString (res.getColumnIndex (" answerquestionid ")). Trim () .equals ("") 'любая идея? –

+0

Похоже, res.getString (res.getColumnIndex ("answerquestionid")) null, так что вам нужно выполнить нулевую проверку перед доступом к методу trim() – Raghavendra

0

Попробуйте это:

if(res.getString(res.getColumnIndex("answerquestionid"))!=null){ 
0

Вы проверяете значение то, что может быть нулевым, который будет кинуть ссылку на нулевой объект. Чтобы исправить это, вы должны проверить, String - null.

if (res != null) { 
    String str = res.getString(res.getColumnIndex("answerquestionid")); 
    if(str != null) { 
     // Perform action 
    } else { 
     // String is null so recover (use placeholder, try again etc) 
    } 
} 

alternativley вы можете сделать это в одном утверждении, но я считаю, что это более читаемо.

if (res != null) { 
    if(res.getString(res.getColumnIndex("answerquestionid")) != null && 
     res.getString(!res.getColumnIndex("answerquestionid")).trim().equals("")) { 
     //Safe to use String 
    } 
} 
+0

Что делать, если res.getString (res.getColumnIndex ("answerquestionid")) сам null? – Raghavendra

+0

Я удалил вызов Trim, но он не выбрал исключение в коде Op. я чувствую, что ваш downvote здесь неуместен. – Hughzi

+0

Что делать, если 'res' сам по себе равен нулю? –

0

У вас есть два пути для этого:

Первый проверяет, если Рез существует (лучший подход)

if(res.getIdentifier(myStringName) != 0){ 
    //do stuff 
} 

Потому что, если она возвращает 0 это означает, что он не существует.

Второго путь проверка, если строка является пустой

String myRes = res.getString(myStringName); 
if(myRes != null && !myRes.trim().equals("")){ 
    //do stuff 
} 

Вашей проблема в том, что вы не проверяли, если String результата был null

Надеется, что это помогает

Смежные вопросы