类Call不需要类型参数

时间:2018-08-18 09:42:38

标签: android kotlin

我遇到了一个问题。我有一个项目,然后将粘贴复制到另一个新项目中,并且遇到了这个错误

类Call不需要类型自变量

在第一个项目中,我没有任何问题... 这是我遇到错误的接口类

interface ApiInterface {
    @GET("data/2.5/weather?q=Prague")
    fun getWeatherData(@Query("units") units: String,
                       @Query("appid") appId: String)
            :Call<WeatherData> //here is the error

}

这是我的WeatherData类

data class WeatherData(
        @SerializedName("coord") val coord: Coord,
        @SerializedName("weather") val weather: List<Weather>,
        @SerializedName("base") val base: String,
        @SerializedName("main") val main: TemperatureData,
        @SerializedName("visibility") val visibility: Int,
        @SerializedName("wind") val wind: Wind,
        @SerializedName("clouds") val clouds: Clouds,
        @SerializedName("dt") val dt: Int,
        @SerializedName("sys") val sys: Sys,
        @SerializedName("id") val id: Int,
        @SerializedName("name") val name: String,
        @SerializedName("cod") val cod: Int
)

data class Sys(
        @SerializedName("type") val type: Int,
        @SerializedName("id") val id: Int,
        @SerializedName("message") val message: Double,
        @SerializedName("country") val country: String,
        @SerializedName("sunrise") val sunrise: Int,
        @SerializedName("sunset") val sunset: Int
)

data class Coord(
        @SerializedName("lon") val lon: Double,
        @SerializedName("lat") val lat: Double
)

data class TemperatureData(
        @SerializedName("temp") val temp: Double,
        @SerializedName("pressure") val pressure: Int,
        @SerializedName("humidity") val humidity: Int,
        @SerializedName("temp_min") val tempMin: Double,
        @SerializedName("temp_max") val tempMax: Double
)

data class Weather(
        @SerializedName("id") val id: Int,
        @SerializedName("main") val main: String,
        @SerializedName("description") val description: String,
        @SerializedName("icon") val icon: String
)

data class Clouds(
        @SerializedName("all") val all: Int
)

data class Wind(
        @SerializedName("speed") val speed: Double,
        @SerializedName("deg") val deg: Int

2 个答案:

答案 0 :(得分:8)

只需验证您是否已从Retrofit导入了正确的软件包。
正确的软件包是retrofit2.Call,不要与android.telecom.Call混淆。
; )

答案 1 :(得分:1)

看一下要导入的部分,并检查Retrofit2.Call库是否已导入,有时它会与okhttp3.call接触,但是您必须使用该版本,因此请确保将库导入到接口/类中