1

只是想了解原因:

    db = databaseHandler.getReadableDatabase();

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

上面代码片段中的大写变量显然是静态final。Android工作室告诉我

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

这对我来说是胡言乱语。有人可以解释一下吗?

4

1 回答 1

1

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

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

于 2013-07-29T07:27:28.443 回答