函数"getClient"即使在 MainActivity Kotlin 中调用时也永远不会使用



当我的ApiClient中的函数在我的MainActivity中被调用时,我的代码无法运行,但intelliJ说该函数从未被使用过。我对Kotlin还很陌生,所以这可能是我的语法,但我不完全确定。

这是我的ApiClient 代码

class ApiClient {
val ITUNES_BASE_URL = "https://itunes.apple.com/"
private var retrofit: Retrofit? = null
fun getClient(): Retrofit? {
if (retrofit == null) {
retrofit = Retrofit.Builder()
.baseUrl(ITUNES_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
//                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
//                    .client(client)
.build()
}
return retrofit
}
}

以下是MainActivity的一个片段,我在其中调用getClient

fun displayItunesList() {
val apiService: ApiInterface = ApiClient.getClient().create(ApiInterface::class)

您有其他ApiClientclass吗?应该使用ApiClient((.getClient((,而不是ApiClient.getClient((。尝试为您的Api客户端添加测试乐趣:

class ApiClient {
val ITUNES_BASE_URL = "https://itunes.apple.com/"
private var retrofit: Retrofit? = null
fun getClient(): Retrofit? {
if (retrofit == null) {
retrofit = Retrofit.Builder()
.baseUrl(ITUNES_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
//                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
//                    .client(client)
.build()
}
return retrofit
}
fun test() {
ApiClient().getClient()
}}

试试这个,

object class ApiClient {
val ITUNES_BASE_URL = "https://itunes.apple.com/"
private var retrofit: Retrofit? = null
fun getClient(): Retrofit? {
if (retrofit == null) {
retrofit = Retrofit.Builder()
.baseUrl(ITUNES_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
//                    
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
//                    .client(client)
.build()
}
return retrofit
}
}

fun displayItunesList() {
val apiService: ApiInterface = ApiClient.getClient().create(ApiInterface::class)

最新更新