Retrofit泛型类型调用方法

7

有没有可能创建通用类型的函数调用,例如

@POST("/service/")
fun<T> startRequest(@Body loginReq: Any): Call<T>

那么只需像这样调用它。
val request = api.startRequest<MyModel_1>(loginReq)

当我这样编写代码并运行方法时,它会显示如下信息:
java.lang.IllegalArgumentException: Method return type must not include a type variable or wildcard: retrofit2.Call<T>

3
你看到下面这些了吗? http://stackoverflow.com/questions/37327048/retrofit-method-return-wildcard 和 https://github.com/square/retrofit/issues/2012? - Roland
你贴的代码不起作用了吗?它产生了什么样的错误? - voddan
很遗憾,错误日志是:"java.lang.IllegalArgumentException: 方法返回类型不能包含类型变量或通配符:retrofit2.Call<T>"。 - Jemo Mgebrishvili
2个回答

0
尝试使用@JvmSuppressWildcards注释函数。

0

Retrofit(2.6.3)需要在编译时知道类型,当注释被处理时。因此,如果Retrofit将来不支持它,我认为根本不可能使用通用的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接