Как создать класс с параметром 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<*>>()
Другие вопросы по тегам