结合函数声明:
String getString(@IntRange(from = 0) int columnIndex);
可以知道getString方法要求一个int类型的参数,且要求该最小为0
getColumnIndex的声明:
@IntRange(from = -1) int getColumnIndex(String columnName);
很明显它的返回值是从-1开始的
解决方法
在实际开发过程中,为了防止自己因疏忽而导致程序抛出异常甚至崩溃,建议采用方法1;如果你跟我一样是在学习过程中,想跑一个例子来加深体验,建议采用方法2,更简单。
我们发现当把getColumnIndex提前声明一个工作变量来装配他的时候,这个报错消失了。
2:判断这个值是否大于等于0,如果是,则照常写,此时不会报错;
如果不是,则不能写这条语句。
我们发现当把getColumnIndex提前声明一个工作变量来装配他的时候,这个报错消失了。
3:添加如下注解
@SuppressLint(“Range”)
@SuppressLint标注可以忽略指定的警告(项目开发不建议)
参考文献:https://blog.csdn.net/weixin_51395622/article/details/121911873
Original: https://blog.csdn.net/s1759352373/article/details/123644153
Author: 神乐条一
Title: 《第一行代码》第二版中使用SQLite查询时,cursor.getColumnIndex(“author“)报错 Value must be ≥ 0
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/815466/
转载文章受原作者版权保护。转载请注明原作者出处!