Java 检查res返回的值是否为null

Java 检查res返回的值是否为null,java,android,Java,Android,这是我用来检查列的值是否为null的代码 if(!res.getString(res.getColumnIndex(“answerquestionid”)).trim().equals(“”){ 但我明白了: java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String java.lang.String.trim()” 检查res返回的值是否为空的正确方法是什么 if(res.getString(res.getColumnIndex

这是我用来检查列的值是否为null的代码

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

但我明白了:

java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String java.lang.String.trim()”

检查res返回的值是否为空的正确方法是什么

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

您正在检查某个可能为null的值,该值将抛出null对象引用。若要解决此问题,必须检查
字符串
是否为
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语句中完成,但我发现上面的内容更具可读性

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

你有两种方法:

首先是检查res是否存在(最佳方法)

因为如果它返回0,则表示它不存在

第二种方法是检查字符串是否为null

String myRes = res.getString(myStringName);
if(myRes != null && !myRes.trim().equals("")){
  //do stuff 
}
您的问题是没有检查
字符串
结果是否为
null

希望这有帮助

试试这个

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

//your stuff

}

if语句中的res似乎为null。请提供更多代码尝试此if(res.getString(res.getColumnIndex(“answerquestionid”)!=null&&!res.getColumnIndex(“answerquestionid”)).trim().equals(“”)@Raghavendra此代码返回错误
!res.getString(res.getColumnIndex(“answerquestionid”)。trim(‌​).等于(“”
但第一个可以,您能提供它作为答案,以便我关闭OP吗?如果res.getString(res.getColumnIndex(“answerquestionid”))本身为空?我已删除对Trim的调用,但它没有在Op的代码中引发异常。我觉得您的否决票放错了位置。如果
res
本身为空怎么办?@olaranderi您可以在任何答案中提出相同的问题,但如果我包含此
&&&!res.getColumnIndex(res.getColumnIndex),所有samei都会得到一个有效点错误(“回答问题ID”).trim(‌​).equals(“”
anyidea?看起来res.getString(res.getColumnIndex(“answerquestionid”))是空的,所以在访问trim()方法之前需要进行空检查
if(res != null){
    if(res.getString(res.getColumnIndex("answerquestionid")) != null && !res.getString(res.getColumnIndex("answerquestionid")).trim(‌​).equals("")) 

//your stuff

}