gpt4 book ai didi

kotlin - 如何在 Kotlin 中继承 MutableList?

转载 作者:行者123 更新时间:2023-12-02 06:27:54 26 4
gpt4 key购买 nike

我正在尝试继承 MutableList,并向其中添加我自己的函数。例如:

class CompositeJob : MutableList<Job> {
fun cancelAllJobs() {
for (job in this) {
job.cancel()
}
}
}

但我收到以下错误:

Class 'CompositeJob' is not abstract and does not implement abstract member
public abstract val size: Int defined in kotlin.collections.MutableList



如何继承 MutableList,这样我就可以使用它的原始方法,如 add() 和 isEmpty(),并添加我自己的方法?

谢谢。

最佳答案

其他答案未提及的一个选项是 delegation :

class CompositeJob : MutableList<Job> by mutableListOf() {
fun cancelAllJobs() {
for (job in this) {
job.cancel()
}
}
}

基本上相当于
class CompositeJob : MutableList<Job> {
private val impl: MutableList<Job> = mutableListOf()
override fun size() = impl.size()
override fun add(x: Job) { impl.add(x) }
// etc for all other MutableList methods

fun cancelAllJobs() {
for (job in this) {
job.cancel()
}
}
}

关于kotlin - 如何在 Kotlin 中继承 MutableList?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51203426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com