【问题标题】:Android SQLiteDatabase query may produce NPEAndroid SQLiteDatabase 查询可能会产生 NPE
【发布时间】:2013-07-28 18:17:27
【问题描述】:

只是想了解原因:

    db = databaseHandler.getReadableDatabase();

    String[] columns = {ID, NAME, DIFFICULTY};
    Cursor cursor = db.query(TABLE_NAME, columns, null, null, null, null, DIFFICULTY);

上面sn-p中的大写变量显然是static final。 Android工作室告诉我

"此检查报告指定检查范围内始终为真或假的条件,并根据代码的数据流分析指出可能引发 RuntimeException 的位置。此检查还报告 Nullable/NotNull 合同违规。可以配置支持合约的注解(默认使用annotations.jar中的@Nullable/@NotNull注解)"

这对我来说是胡言乱语。谁能解释一下?

【问题讨论】:

    标签: android sqlite android-sqlite android-studio


    【解决方案1】:

    该工具试图帮助您找到可能发生错误的地方。 在这种特殊情况下,它会抱怨您使用 null 的每个地方以及无法证明允许这种用法的地方。

    但是,documentation 表明这些参数确实允许使用 null 值,因此该工具是错误的。 此外,SQLiteDatabasequery 方法是Android API 的一部分,所以没有任何借口。认为这是检查器中的错误。

    【讨论】:

    • 非常感谢,我就是这么想的,但不想做一个菜鸟级别的假设。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2016-02-13
    • 1970-01-01
    • 2021-11-15
    相关资源
    最近更新 更多