У меня 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). Но выполнить откат иcheck.
Более того, мой класс Dao (в приведенном выше примере) не имеет родителя, не переопределяет этот метод в подклассе и не имеет методов с таким же именем, но с другими аргументами.быть переопределенным вообще.
ОБНОВЛЕНИЕ
Понял проблему! Комната не генерирует @ Nullable / @ NonNull для параметров в реализации Dao: возвращаемые значения имеют аннотацию, вводпараметры не.
Есть ли способ исправить это (кроме удаления аннулируемых аннотаций из параметров)?