如何在kotlin中使用self类型参数作为接口

问题描述 投票:0回答:1

我有一个带有Self类型参数的类Element

interface Element<Self: Element<Self>> {
    val rules: Set<(Self) -> Boolean>
}

我现在如何创建一个List with Element作为类型参数,因为以下当然不起作用。

val list: List<Element>

提前致谢

generics kotlin self-type kotlin-generics
1个回答
0
投票

发生的错误是你缺少“<*>”,它应该是这样的:

val list: List<Element<*>>

但我建议您根据文档使用MutableList:

列表:通用的有序元素集合。此接口中的方法仅允许对列表进行只读访问;通过MutableList接口支持读/写访问。

MutableList:支持添加和删除元素的通用有序元素集合。

您的列表应如下所示:

var myList: MutableList<Element<*>> = mutableListOf<Element<*>>()
© www.soinside.com 2019 - 2024. All rights reserved.