有没有一种简单的方法可以从内部类调用父超函数



我有以下代码

class DrawingActivity : AppCompatActivity() {

private inner class ImageInfoObserver : Observer<ImageInfo> {
override fun onChanged(imageInfo: ImageInfo?) {
// Is there a way to perform DrawingActivity.super.finish() ?
superFinish()
}
}
fun superFinish() {
super.finish()
}

override fun finish() {
...
super.finish()
}

目前,我需要专门创建superFinish()函数,以便内部类ImageInfoObserver调用DrawingActivity.super.finish()

我想知道,有没有一种更简单的方法可以做到这一点,而不必创建superFinish()

使用与访问DrawingActivity相同的方式执行此操作,但使用super@DrawingActivity而不是this@DrawingActivity。所以

super@DrawingActivity.finish()

将类似于从CCD_ 9内部调用CCD_。文档中也有一个例子。

你有什么理由不想在实际的课堂上调用finish()吗?(即this@DrawingActivity.finish()(为什么要跳过DrawingActivity自己的finish代码?如果有充分的理由,那么在重写的finish()函数中以某个状态变量为条件的额外代码可能是值得的。

这样,从读取函数中可以清楚地看出,当某些事情发生时,以及当它没有发生时,所有的结束分解逻辑都在一个地方处理。

最新更新