List extends Something>生成而不是List

问题描述 投票:4回答:1

我有一个服务调用,它返回一个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>

java android generics kotlin rx-java2
1个回答
0
投票

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

val mutableList = mutableListOf<@JvmSuppressWildcards Address>()
© www.soinside.com 2019 - 2024. All rights reserved.