我正在开发 android 应用程序,我已经在 viemodel 类中实现了成功和失败案例,但我得到以下不匹配类型不匹配。要求:结果!找到:结果<响应>
在我的 NewsViewModel 下面,我在获取数据时实现了成功和失败案例
class NewsViewModel(private val repository: NewsRepository) : ViewModel() {
private var _newsResponse= MutableLiveData<Result<NewsResponse>>()
// Expose to the outside world
val news: LiveData<Result<NewsResponse>> = _newsResponse
@UiThread
fun getNews() {
viewModelScope.launch(Dispatchers.IO) {
try {
val response = repository.getNews()
_newsResponse.postValue(Result.success(response))
} catch (ioe: IOException) {
_newsResponse.postValue(Result.Failure("[IO] error please retry", ioe))
} catch (he: HttpException) {
_newsResponse.postValue(Result.Failure("[HTTP] error please retry", he))
}
}
}
}
在我的 NewsRepository.ktclass 下面
NewsRepository(
private val apiInterface:NewsInterface
){
suspend fun getNews() = apiInterface.getNews()
}
在我的 Result 类下面
sealed class Result<out T> {
data class Success<out R>(val value: R): Result<R>()
data class Failure(
val message: String?,
val throwable: Throwable?
): Result<Nothing>()
}
我想知道我到底在哪里犯了错误我必须做什么才能解决这个问题
在我的新闻界面下方
导入 com.example.newsworldwide.model.NewsResponse 导入 retrofit2.Response 导入 retrofit2.http.GET 接口 NewsInterface {
@GET("ApiKey")
suspend fun getNews(): Response<NewsResponse>
}