ネットワーク サービスのアプリケーションでエラーをグローバルに処理する必要があります。レトロフィット サービスで Rxjava2CallAdapterFactory を使用しています。エラーをグローバルに処理するために、さまざまなサイトを検索して解決策を得ました。しかし、私はこれがどのように機能するかを知っています。
class RxErrorAdapter private constructor() : CallAdapter.Factory() {
private val original = RxJava2CallAdapterFactory.create()
override fun get(returnType: Type, annotations: Array<Annotation>, retrofit: Retrofit): CallAdapter<*, *>? {
return Wrapper<Any>(original.get(returnType, annotations, retrofit)
?: return null)
}
private class Wrapper<R>(private val wrapped: CallAdapter<R, *>) : CallAdapter<R, Any> {
override fun responseType(): Type {
return wrapped.responseType()
}
override fun adapt(call: Call<R>): Any {
val result = wrapped.adapt(call)
}
}
companion object {
fun create(): CallAdapter.Factory {
return RxErrorAdapter()
}
}
}
誰でもこれについて説明できますか?