web-dev-qa-db-ja.com

メソッド呼び出しにより、Java NullpointerException

私はコードをもっている:

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'

どうすれば修正できますか?

14
Raddino

解決策1:SQLをハードコーディングしているので、インデックスをハードコーディングしないのはなぜですか

 updateNameEvent = mCursor.getString(0);

解決策2:

try{
    updateNameEvent = mCursor.getString(mCursor.getColumnIndexOrThrow("name"));
}catch(IllegalArgumentException ie){
    updateNameEvent = 0; 
}

列が存在しない場合、getColumnIndexOrThrowメソッドはIllegalArgumentExceptionをスローします。

ソリューション1は、より高速でシンプルです。

0
kamoor