我在我的应用程序中执行此数据库操作,我在其中提取某个列值以检查它是否存在。我在执行查询并将值分配给字符串时没有问题(我什至可以在日志中输出这个值)。当我尝试检查我的字符串是否等于 null 时,我的问题就出现了,具有讽刺意味的是,我得到了一个 NullPointer。
这是我的功能:
public boolean isDone(String id){
boolean isDone = false;
String timeOut = new String();
timeOut = "A";
String query = "SELECT TimeOut FROM " + TABLE_ROUTE_TABLE + " WHERE _id = '" + id + "'";
Cursor cursor = mDB.rawQuery(query, null);
if(cursor.moveToFirst()){
timeOut = cursor.getString(cursor.getColumnIndex("TimeOut"));
Log.d("Hi", "timeOut = " + timeOut);
}
if(timeOut.equals(null)){
isDone = false;
}
else{
isDone = true;
}
return isDone;
}
我在if(timeOut.equals(null))
. 当我能够使用它并显示它的值(有时可能为空)时,我不明白为什么当我将字符串作为布尔条件的一部分时会得到 NPE。
我有一种感觉,我忽略了一些基本的东西。有任何想法吗?