【发布时间】:2019-07-24 21:41:22
【问题描述】:
我有一个返回 JSON 响应的服务调用,该响应随后通过数据管理器传递,如果服务成功则转换数据,如果调用失败则创建错误正文。
数据管理器是用 kotlin 编写的,特定的行 我感兴趣的代码是这个
val mutableList = mutableListOf<Address>()
return Result.error(errorTransformation(serviceErrors, mutableList))
我的errorTransformation 类基本上是一个异常调用,这是用java 编写的。异常类的构造函数是
ExceptionClass(ServiceErrors serviceError ,List<Address> address){
// initiialize fields here
}
现在,当我尝试初始化我的异常类时,它说找到了适当的构造函数,它向我显示了使用语法生成一个的建议
ExceptionClass(ServiceErrors serviceError ,List<? extends Address> address){
// initiialize fields here
}
为什么会这样?我只想要List<Address>,而不是List<? extends Address>。
【问题讨论】:
-
只是猜测,但如果将第一行替换为
val mutableList = ArrayList<Address>()是否一切正常? -
@BenP.Nope,它不会改变任何东西
-
kotin 中的集合默认是协变的(与 Java 不同),所以这种行为是有效的。您收到的确切消息/警告是什么?你能把它贴在这里吗?另外,您使用的是哪个 kotlin 版本?
标签: java android generics kotlin rx-java2