我正在尝试继承 MutableList,并向其中添加我自己的函数。例如:
class CompositeJob : MutableList<Job> {
fun cancelAllJobs() {
for (job in this) {
job.cancel()
}
}
}
但我收到以下错误:
我如何继承 MutableList,以便我可以使用它的原始方法,如 add() 和 isEmpty(),并添加我自己的方法?
谢谢。
最佳答案
MutableList
是一个接口(interface)——它不实现它的任何方法,只是声明它们。如果你想从头开始实现 MutableList
,你必须实现它的所有 20 个方法加上 size
属性,正如你的错误已经告诉你的那样。
但是,您可以子类化此接口(interface)的实际实现,例如 ArrayList
或 LinkedList
:
class CompositeJob : ArrayList<Job>() {
fun cancelAllJobs() {
for (job in this) {
job.cancel()
}
}
}
编辑:如果您只是想对协程
Job
实例进行分组,此时您应该使用父 Job
、 SupervisorJob
和 CoroutineScope
,而不是手动收集这样的作业。关于kotlin - 如何在 Kotlin 中继承 MutableList?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51203426/