Я закодировал это, чтобы сделать его глобальным, но сейчас я получаю LinkedHashMap
при использовании
registerEvents<ArrayList<RestaurantModel>>(..)
inline fun <reified T> registerEvents(events: String, requestCode: Int): Observable<Pair<T,Int>> {
return Observable.create { emitter ->
mSocket?.on(events) {
val resp = gson.fromJson("${it[0]}", genericType<ResponseModel<T>>()) as ResponseModel<T>
if (resp.status) {
emitter.onNext(Pair(resp.data!!, requestCode))
} else {
emitter.onError(Throwable("Server Error...."))
}
}
}
}
Это мой универсальный метод для получения типа необходимого класса
inline fun <reified T> genericType() = object : TypeToken<T>() {}.type
Всегда получать ответ для списка в виде LinkedHashMap для каждого объекта в jsonarray