В настоящее время я изучаю использование Moshi
с Retrofit
для работы с запросами сетевого API, одна вещь, которую я запутал:
КОГДА и ЗАЧЕМ использовать
@JsonClass(generateAdapter = true)
для моих классов данных?
При следующем сценарии:
data class ChatMessagesResponse(val chatMessages: List<ChatMessage>)
data class ChatMessage(val message: String, val user: User, val date: Date)
data class User(val firstName: String, val lastName: String)
И я добавляю пользовательский adapter
в Moshi
следующим образом:
private val moshi = Moshi.Builder().run {
add(DateAdapter()) //<- convert between String date and Date date
add(KotlinJsonAdapterFactory())
build()
}
Спросить:
-
В чем преимущество добавления
@JsonClass(generateAdapter = true)
для описанного выше сценария? -
Нужно ли добавлять
@JsonClass(generateAdapter = true)
для всех этих трех классов? Или только первые два? Почему?