Имея библиотеку, созданную с помощью kotlin, в ней есть функция, которая, как ожидается, будет переопределена ее дочерним классом, который принимает mutableList (ожидается, что эта функция будет изменена)
protected open fun makeDataForAdapter(itemsList: MutableList<Data>) : List<Data>{
return itemsList // default behavior
}
библиотека используется в приложении с java, поэтому дочерний класс переопределяет ее:
@Override
protected List<Data> makeDataForAdapter(MutableList<Data> itemsList) {
......
}
компилятор жалуется на "cant resolve the MutableList"
какой тип списка, изменяемый в kotlin, можно использовать в java?
Спасибо @JB Nizet, нажав Cmd-I где? Я использую Android Studio, кажется, ничего не происходит?
Извините, это Ctrl-O для метода Override в подклассе Java.
не работает в студии Android, Cmder открывает файл класса.
Это Ctrl-O, а не Cmd-O





kotlin.List<out T> и kotlin.MutableList<E>сопоставленные типы, которые на JVM и Android представлены интерфейсом java.util.List<E>.
Таким образом, вам просто нужно использовать тип Java List<E> везде, где вам нужно взаимодействовать с Kotlin List<out E> или MutableList<E>.
List<Data>... Просто используйте Ctrl-I (Cmd-I на Mac), и IntelliJ позволит вам переопределить методы и добавит для вас необходимый код.