道@NonNull警告

时间:2019-02-23 04:51:56

标签: android android-studio android-room androidx

我有Room Dao,使用方法:

@Insert(onConflict = OnConflictStrategy.REPLACE)
abstract long upsertItem(@NonNull DBItem obj);

它在Android Studio 3.3.1中生成警告:“未注释重写的方法参数”。在自动求解菜单中,有一个选项“将覆盖的方法参数注释为'@NonNull'”。如果我选择它,则没有任何更改(项目文件没有更新的导入或更改-至少在git文件中[我使用https://github.com/github/gitignore]),但警告消失了一段时间(也许是项目清理或重新同步-不确定)。

问题似乎与AndroidX迁移有关,因为我之前不记得它(使用支持库和API 27作为targetSdkVersion / compileSdkVersion,移至28和androidx.room)。但是无法回滚和检查。

此外,我的Dao类(在上面的示例中)没有父类,没有在子类中覆盖此方法,并且没有名称相同但带有其他参数的方法。因此,什么都不能被覆盖。

更新

了解问题所在!在Dao实现中,Room不会为参数生成@ Nullable / @ NonNull:返回值具有注释,输入参数则没有。

有什么办法可以解决(除了从参数中删除可空性注释)?

0 个答案:

没有答案