gpt4 book ai didi

java - 使用包含已实现方法的 Kotlin 特征进行改造

转载 作者:行者123 更新时间:2023-12-04 20:38:00 24 4
gpt4 key购买 nike

只要没有实现额外的方法,Traits 就可以很好地与 Retrofit 配合使用。取决于返回类型 RetrofitError: TwitchApi.someMethod: HTTP 方法注释是必需的(例如,@GET、@POST 等)。java.lang.IllegalArgumentException: TwitchApi.someMethod: 必须将返回类型或回调作为最后一个参数。 被抛出。

有没有办法让改造忽略一个没有用任何 retrofit.http.GET/PUT/... 注释的方法?

public trait SomeApi {

GET("/endpoint")
public fun getSomething(Query("user") user: String): Observable<SomeResponse>

class object {
public fun create(): SomeApi {
val restAdapter = RestAdapter.Builder().setEndpoint("http://localhost").build()
return restAdapter.create<TwitchApi>(javaClass<SomeApi >())
}
}

public fun someMethodThatBreaksRetrofit(user: String) : Int {
return processResponse(getSomething(user))
}
}

最佳答案

你根本不应该那样做。幸运的是,在 Kotlin 中你可以使用扩展函数,所以

interface SomeApi {
GET("/endpoint")
fun getSomething(Query("user") user: String): Observable<SomeResponse>
}

fun SomeApi.someMethod(user : String) : Observable<Int>
= processResponse(getSomething(user))

关于java - 使用包含已实现方法的 Kotlin 特征进行改造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28926063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com