Quo*_*oon 2 generics bounds kotlin kotlin-android-extensions
为了映射结果,我实现了密封的泛型类:
public sealed class ResultMapper<out T : Any> {
public class Ok<out T : Any>(public val value: T,
override val response: Response) : Result<T>(), ResponseResult {
override fun toString(): String = "Result.Ok{value=$value, response=$response}"
}
}
public interface ResponseResult {
val response: Response
}
Run Code Online (Sandbox Code Playgroud)
现在,我假设该类应该按预期的方式工作:
ResultMapper.Ok(body,raw)
private class Body<T>() {
onResponse(response: Response, raw: Raw) {
ResultMapper.Ok(response.body(),response.raw()) --> It returned an exception
}
}
Run Code Online (Sandbox Code Playgroud)
构造函数Ok不满意:推断类型T?不是Any的子类型
该类Body具有通用类型参数,T没有任何限制,即就像定义,T: Any?而Ok的类型参数限于T: Any。您应该调整Body为不允许以下两种情况之一:
class Body<T: Any>
Run Code Online (Sandbox Code Playgroud)
或者,删除其他类的上限。
| 归档时间: |
|
| 查看次数: |
3229 次 |
| 最近记录: |