我有一个代码:
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'
我该如何解决?
最佳答案
您的光标不能为null
,它将始终具有任何值。但是游标可以为空,因此您首先应使用moveToFirst()
方法转到游标的第一行,如果它返回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;
}