Я создаю такой объект в Котлине и передаю его методу:
val myObject = object { @SerializedName("fieldOne") val fieldOne = myFieldOne @SerializedName("fieldTwo") val fieldTwo = myFieldTwo @SerializedName("fieldThree") val fieldThree = myFieldThree } dbManager.save(myObject) // this works fine
Однако Android Studio жалуется на это и говорит:
Свойство '' fieldOne '' никогда не используется
Я знаю, что могу удалить это предупреждение с помощью опций lint, но хотел бы найти «родной» способ избавиться от этого предупреждения.
Использование вашего object
выполняется с отражениями. Фактический класс имеет определенный конструктор, который имеет параметр myFieldOne
для myFieldThree
.
Для здравого смысла вашего кода вы должны использовать вместо этого класс данных . Kotlin, как Java , статически типизирован, что вы должны использовать как можно больше. Следующим шагом было бы избавиться от любых отражений, которые вам не нужно делать.
Я не знаю, что вы подразумеваете под «родным способом избавиться от него», но есть аннотация для него:
val myObject = @Suppress("unused") object { @SerializedName("fieldOne") val fieldOne = myFieldOne // ... }
Конечно, вы можете создать класс данных, но будут случаи использования, когда анонимные синглтоны ( object {}
) являются лучшим выбором, и тогда вам понадобится эта аннотация, чтобы сообщить статическому анализу кода, что это желательно, а не по ошибке.