java 引用 null,方法调用可能产生java NullpointerException

I have a code:

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;

}

and I´m getting a warning

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

How i can fix it pls?

解决方案

Your cursor can not be null, it will always have any value. But cursor can be empty, so you should firstly go to first row in cursor with method moveToFirst(), and if it returns true - it means, that cursor has at least one row, so you can do with it all you want, if it returns false - it means, that there is nothing for your query, so you have not any rows to get data from. Your code should look like this:

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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值