首页 > 解决方案 > 为什么在 Retrofit 中使用 CallAdapter.factory?

问题描述

1.为什么在Retrofit中使用CallAdapter.factory?2.您可以解释以下方法的功能非常感谢您的时间

class LiveDataCallAdapterFactoryForRetrofit : CallAdapter.Factory() {
    override fun get(
        returnType: Type,
        annotations: Array<Annotation>,
        retrofit: Retrofit
    ): CallAdapter<*, *>? {
        if (getRawType(returnType) != LiveData::class.java) {
            return null
        }
        val observableType = getParameterUpperBound(0, returnType as ParameterizedType)
        val rawObservableType = getRawType(observableType)
        require(rawObservableType == Resource::class.java) { "type must be a resource" }
        require(observableType is ParameterizedType) { "resource must be parameterized" }
        val bodyType = getParameterUpperBound(0, observableType)
        return LiveDataCallAdapter<Any>(bodyType)
    }

标签: androidkotlinretrofitandroid-livedata

解决方案


推荐阅读