当前位置: 首页 > 知识库问答 >
问题:

方法调用可能产生java NullpointerException

杜晨朗
2023-03-14

我有个密码:

public String getNameUpdateEvent(long id) {
    Cursor mCursor =
            db.rawQuery("select name from events WHERE _id=" + id + ";", null);
    if (mCursor != null) {
        mCursor.moveToFirst();
    }
    String updateNameEvent;
    updateNameEvent = mCursor.getString(mCursor.getColumnIndex("name"));
    return updateNameEvent;
}    

我收到一个警告

    Warning:(173, 45) Method invocation 'mCursor.getColumnIndex("name")' may produce 'java.lang.NullPointerException'

我怎么才能修好它?

共有1个答案

宗建章
2023-03-14

您的光标不能null,它将始终具有任何值。但是cursor可以是空的,所以首先应该使用moveToFirst()方法转到cursor中的第一行,如果它返回true-这意味着该游标至少有一行,所以您可以任意处理它,如果它返回false-这意味着没有任何可用于查询的内容,因此您没有任何行可以从中获取数据。您的代码应该如下所示:

public String getNameUpdateEvent(long id) {
    Cursor mCursor =
        db.rawQuery("select name from events WHERE _id=" + id + ";", null);

    String updateNameEvent = null;
    if (mCursor != null && mCursor.moveToFirst()) {
        updateNameEvent = mCursor.getString(mCursor.getColumnIndex("name"));
    }
    return updateNameEvent;
}  
 类似资料: