当我的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)