私はコードをもっている:
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:SQLをハードコーディングしているので、インデックスをハードコーディングしないのはなぜですか
updateNameEvent = mCursor.getString(0);
解決策2:
try{
updateNameEvent = mCursor.getString(mCursor.getColumnIndexOrThrow("name"));
}catch(IllegalArgumentException ie){
updateNameEvent = 0;
}
列が存在しない場合、getColumnIndexOrThrowメソッドはIllegalArgumentExceptionをスローします。
ソリューション1は、より高速でシンプルです。