列表<!-?扩展Something->而不是List <something>

时间:2019-03-03 12:10:12

标签: java android generics kotlin rx-java2

我有一个服务调用,该服务返回一个JSON响应,然后通过数据管理器传递该数据管理器,如果服务成功,该数据管理器将转换数据;如果服务失败,则创建一个错误正文。

数据管理器是用kotlin编写的, 我感兴趣的代码是这个

val mutableList = mutableListOf<Address>()
return Result.error(errorTransformation(serviceErrors, mutableList))

我的errorTransformation类基本上是一个Exception调用,它是用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>

1 个答案:

答案 0 :(得分:0)

kotlin 特定行为是隐式使用List<? extends Address>而不是List<Address>。您可以使用@JvmSuppressWildcards注释强制 kotlin 完全生成所需的内容

val mutableList = mutableListOf<@JvmSuppressWildcards Address>()