какая разница между методом переопределения и общим методом в kotlin? - PullRequest
0 голосов
/ 11 декабря 2018

Screen Shot

val showMethod:(String) -> Unit = this::showLoadingDialog
override fun start(msg: String) = showMethod

Я хочу использовать метод start = this :: showLoadingDialog, но получаю ошибку компиляции!метод не является подтипом переопределенных ***!

почему?как я могу это сделать?

1 Ответ

0 голосов
/ 11 декабря 2018

Это неверно, потому что start не переменная, а функция.

override fun start(msg: String) = showMethod

эквивалентно

override fun start(msg: String) {
    return showMethod
}

, что неверно.start должен вернуть Unit вместо (String) -> Unit

То, что вы пытаетесь сделать, это

override fun start(msg: String) {
    return showMethod(msg)
}

эквивалентно

override fun start(msg: String) = showMethod(msg)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...