0

ネットワーク サービスのアプリケーションでエラーをグローバルに処理する必要があります。レトロフィット サービスで 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()
        }
    }
}

誰でもこれについて説明できますか?

4

1 に答える 1