sql = String.format("SELECT mMax FROM ItemParas WHERE sampleType ='%s' and name ='%s',
softType, item");
Cursor c = null;
c = db.rawQuery(sql, null);
if (c.moveToNext()) {
String max = c.getString(c.getColumnIndex("mMax"));
c.close();
return max;
} else {
return "/";//2020/4/2 从返回“-”改为“/”,为了适应后面对“-”的分割,不出错
}
以上为源代码,原意是为了找出一个项目对应的最大值。前提,数据库查找没有问题,安卓版本为4.0.3,jdk为1.8.
String max = c.getString(c.getColumnIndex("mMax"));
原本debug已经进去了c.close();max 的值也是找到了,而下一步的应该是到 return max;但事实上,他竟然跳转到了 return "/",
??黑人问号脸,在跳转到一个分支之后还跳转到另一个分支,然后给我返回了 " /" 。老实说,我现在都没理清楚这是为啥,也就大概从生命周期上来解释了(没错,就是第六感)。因为是之前进来说是qt,暗里就让我做android,可能问题对其他人很小,但在我这里以后可能会是必发的bug。先记录一下
修改过后,在if 分支外先定义,嗯。。。完美解决(一脸懵逼)
String max = "";
sql = String.format("SELECT mMax FROM ItemParas WHERE sampleType ='%s' and name ='%s',
softType, item");
Cursor c = null;
c = db.rawQuery(sql, null);
if (c.moveToNext()) {
max = c.getString(c.getColumnIndex("mMax"));
c.close();
return max;
} else {
return "/";//2020/4/2 从返回“-”改为“/”,为了适应后面对“-”的分割,不出错
}
String max = "";
max = c.getString(c.getColumnIndex("mMax"));