Код: Выделить всё
@JsonClass(generateAdapter = true)
data class ErrorResponse(
@Json(name = "code") val code: String,
@Json(name = "message") val message: String,
@Json(name = "id") val id: String,
@Json(name = "path") val path: String
)
У меня есть следующие строки:
Код: Выделить всё
val moshi = Moshi.Builder().build()
val adapter: JsonAdapter = moshi.adapter(ErrorResponse::class.java)
val error = try {
adapter.fromJson(it.response()?.errorBody()?.string() ?: "")
} catch (e: JsonDataException) {
Timber.e(e, "Network response: JsonDataException")
ErrorResponse.empty()
}
Я также использую Koin и при необходимости могу внедрить Moshi.
Мой вопрос заключается в том, каков наиболее оптимальный способ добиться этого, чтобы не создавать несколько объектов Moshi (и, следовательно, влияют на производительность/память)?
- Создайте объект Moshi как переменную верхнего уровня.
- Используйте объект в Kotlin, который внедрит Moshi и определит это развлечение, тогда как Moshi объявлен как одиночный в Koin, поэтому по сути это синглтон?
- Inject Moshi функция расширения?
- Другое??
Подробнее здесь: https://stackoverflow.com/questions/787 ... in-android