5

我是 Kotlin 的新手。我有一个包含两个方法定义的接口:

fun onSuccess(result: T)
fun onFailure(e: Exception)

现在,在我的片段中,我已经实现了这个接口,并希望在内部使用这些方法:

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?,
                              savedInstanceState: Bundle?): View? {
     ..................
     ..................
     override fun onSuccess(result: String) {}
     override fun onFailure(e: Exception) {}
}

在java中,我们可以使用@override,但在这里我得到错误'修改器'覆盖'不适用于本地函数'。我在 kotlin 工作了 2-3 天,我喜欢它。但有时小问题需要一些时间来调试。

4

1 回答 1

11

您需要在片段上实现接口并将覆盖方法移到 onCreateView 方法之外。

MyFragment 类:片段,MyInterface

您不能在方法中覆盖方法。另一种选择是您可以创建一个对象表达式,如下所示

window.addMouseListener(object : MouseAdapter() {
    override fun mouseClicked(e: MouseEvent) {
        // ...
    }

    override fun mouseEntered(e: MouseEvent) {
        // ...
    }
})

https://kotlinlang.org/docs/reference/object-declarations.html

于 2017-06-27T00:55:55.263 回答