具有一个用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中使用?
答案 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>
类型即可。