注释必须调用super的接口函数

Dim*_*ira 7 kotlin

我正在创建界面,其中的一些功能有一个正文.这是必需的,实现此接口的类必须在执行其他代码之前调用super覆盖函数.我怎样才能做到这一点?

interface Watcher {
    fun funWithoutBody()

    fun startWatching() {
        //do some important stuff which must be called
    }
}
Run Code Online (Sandbox Code Playgroud)

Dim*_*ira 14

我不小心发现了,我在寻找什么.这是包中@CallSuper提供的注释android.support.annotation.文件

使用@CallSuper批注来验证重写方法是否调用方法的超级实现.以下示例注释onCreate()方法以确保任何重写方法实现调用super.onCreate():

@CallSuper
protected fun onCreate(savedInstanceState: Bundle?) {
}
Run Code Online (Sandbox Code Playgroud)

  • 这种方法的问题是,如果您有多模块项目,并且您需要在不是 Android 模块的模块中使用此功能,您将无法使用此注释。 (2认同)