将Java通配符类型参数转换为Kotlin

时间:2019-01-11 23:27:30

标签: java list kotlin wildcard

尝试学习Kotlin,在Java的一个类中,我有一个值,该值是一个包含任何扩展特定接口的类的列表,如下所示。

List<? extends foo>

我以前尝试过out修饰符示例:

interface foo 
{
   val bar: out List
}

并通过修饰符示例传递类:

interface foo<T> 
{ 
   val bar: List<T> 
}

想要得到的结果是,如果两个类扩展了此接口,则它们都可以具有该值,但是一个可以具有类型A的列表,而类型B的列表

1 个答案:

答案 0 :(得分:1)

相当于Java List<? extends foo>的Kotlin并不取决于foo的外观,也不需要更改它。是MutableList<out foo>https://kotlinlang.org/docs/reference/generics.html#use-site-variance-type-projections)。