Как создать класс с параметром self type в качестве интерфейса в kotlin
У меня есть элемент класса с параметром типа Self
interface Element<Self: Element<Self>> {
val rules: Set<(Self) -> Boolean>
}
Как я могу теперь создать список с элементом в качестве параметра типа, потому что следующее, конечно, не работает.
val list: List<Element>
заранее спасибо
1 ответ
Ошибка, которая возникает там, заключается в том, что вам не хватает "<*>", это должно выглядеть так:
val list: List<Element<*>>
Но я бы порекомендовал вам использовать MutableList в соответствии с документацией:
Список: общий упорядоченный набор элементов. Методы в этом интерфейсе разрешают доступ только для чтения к списку; доступ для чтения / записи поддерживается через интерфейс MutableList.
MutableList: универсальный упорядоченный набор элементов, который поддерживает добавление и удаление элементов.
Ваш список должен выглядеть так:
var myList: MutableList<Element<*>> = mutableListOf<Element<*>>()