我正在用 kotlin 開發一個應用程式,它與一個回傳一些用戶資訊的示例 API 相連,以便測驗 Retrofit 庫。
我開發了應用程式的主要結構,但當我試圖在API中實作按ID選擇的功能時,我得到了以下錯誤。
關于變數T的資訊不充分。
出現這個錯誤的代碼是在Provider和服務中,因為我定義了我的proyect.
。模型資料的代碼如下:
data class QuoteModel (
@SerializedName("id") val quote: 數字。
@SerializedName("name") val name: String。
@SerializedName("email") val email: 字串。
@SerializedName("address") val addrees: 字串。
@SerializedName("phone") val phone: 字串。
@SerializedName("website") val website: 字串。
@SerializedName("company") val company: 字串。
)
我的提供者是下一個:
class QuoteProvider constructor(){
var allUsers: List<QuoteModel> = emptyList1()
var userById: QuoteModel = emptyList1() as QuoteModel
}
我的服務是這樣的:
class QuoteService constructor(private val api。 QuoteApiClient) {
suspend fun getAllUsers()。List<QuoteModel> {
return withContext(Dispatchers.IO) {
val response = api.getAllUUsers()
response.body() ? : emptyList1()
}
}
suspend fun getUserById(id:Number)。QuoteModel{
return withContext(Dispatchers.IO){
val response = api.getUserById(id)
response.body() ? : emptyList1() as QuoteModel --here is the error
}
}
}
錯誤出現在這一行:response.body() ? : emptyList1() as QuoteModel
我知道這是一個型別變數錯誤,但我剛開始接觸Kotlin幾個月,我不知道是否退出類似于emptyList()的東西,但只有一個物件。
預先感謝!
uj5u.com熱心網友回復:
你可以使用listOf<QuoteModel>()/code>來創建空陣列。
你試圖在第二個函式中回傳串列,但它需要QuoteModel。所以你應該創建一個空的QuoteModel物件,或者在回傳型別中使用QuoteModel?回傳null
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/332808.html
標籤:
