Kotlin 有没有一种从内部类调用父超函数的简单方法?
我有以下代码Kotlin 有没有一种从内部类调用父超函数的简单方法?,kotlin,Kotlin,我有以下代码 class DrawingActivity : AppCompatActivity() { private inner class ImageInfoObserver : Observer<ImageInfo> { override fun onChanged(imageInfo: ImageInfo?) { // Is there a way to perform DrawingActivity.super.fini
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()
}
class DrawingActivity:AppCompatActivity(){
私有内部类ImageInfoObserver:Observer{
更改后覆盖乐趣(imageInfo:imageInfo?){
//是否有执行DrawingActivity.super.finish()的方法?
超精
}
}
趣味超精{
超级完成
}
覆盖乐趣完成(){
...
超级完成
}
目前,我需要专门创建superFinish()
函数,以便内部类ImageInfoObserver
调用DrawingActivity.super.finish()
我想知道,有没有更简单的方法来实现这一点,而不必创建
superFinish()
?您可以使用与访问DrawingActivity
相同的方法来实现,而不是this@DrawingActivity
您使用的是super@DrawingActivity
相反,所以
super@DrawingActivity.finish()
类似于从内部调用super.finish()
DrawingActivity。也可以
但是,有没有任何理由不想对实际类调用finish()
this@DrawingActivity.finish())为什么要跳过DrawingActivity
自己的finish
代码?如果有充分的理由,在重写的finish()中生成额外的代码可能是值得的
函数以某个状态变量为条件
这样,当某些事情发生或没有发生时,通过读取函数就可以清楚地看到,所有完成拆卸逻辑都在一个地方处理。Mmmm。 我不禁想知道什么样的设计需要这种能力,它造成了什么样的维护问题,以及是否可以对它进行更改以避免这种情况。是的,我可能还不太清楚,但我认为如果在
finish
中有代码有时需要运行,有时不需要,那么你应该处理它在finish
本身中。其他组件不应该在活动后面拔掉另一个插头,这对未来是一个坏兆头!