在Kotlin中哪种可变的列表类型可以在Java中使用?

时间:2018-08-21 16:57:24

标签: kotlin mutablelist

具有一个用kotlin创建的库,其中有一个预期被其后代类覆盖的函数,该函数带有一个mutableList(预计将在此函数中进行修改)

protected open fun makeDataForAdapter(itemsList: MutableList<Data>) : List<Data>{
    return itemsList // default behavior
}

该lib在具有Java的应用程序中使用,因此后代类将其覆盖:

@Override
protected List<Data> makeDataForAdapter(MutableList<Data> itemsList) {
     ......
}

编译器抱怨"cant resolve the MutableList"

在kotlin中可变的哪种列表类型可以在Java中使用?

1 个答案:

答案 0 :(得分:3)

kotlin.List<out T>kotlin.MutableList<E> are mapped types在JVM和Android上均由java.util.List<E>接口表示。

因此,您只需要在需要与Kotlin List<E>List<out E>进行互操作的地方使用Java MutableList<E>类型即可。