Возврат метода в Kotlin & Java - PullRequest
0 голосов
/ 20 марта 2019

Я учу Котлин. У меня странная ситуация.

У меня есть метод в Java:

@Override
public NavDestination navigate(@NonNull Destination destination,
                               @Nullable Bundle args,
                               @Nullable NavOptions navOptions,
                               @Nullable Extras navigatorExtras) {

    ....
    return navDestination ;
}

и код в котлине

override fun navigate(destination: Destination, 
                      args: Bundle?, 
                      navOptions: NavOptions?, 
                      navigatorExtras: Extras?) {
       ....
    }

Мой вопрос: почему метод в Котлине ничего не возвращает? Когда мы ищем документы https://developer.android.com/reference/androidx/navigation/Navigator.html#navigate(D,%20android.os.Bundle,%20androidx.navigation.NavOptions,%20androidx.navigation.Navigator.Extras)

Вы можете видеть, что метод возвращает что-то.

Спасибо за ответ.

1 Ответ

2 голосов
/ 20 марта 2019

Ссылка на указанную вами документацию ссылается на выпуск 1.0.0 библиотеки.Но вы используете версию 1.0.0-alpha06.Произошло изменение в сигнатуре метода с alpha06

public abstract void navigate(@NonNull D destination, @Nullable Bundle args, @Nullable NavOptions navOptions, @Nullable Extras navigatorExtras);

на 1.0.0 stable:

public abstract NavDestination navigate(@NonNull D destination, @Nullable Bundle args, @Nullable NavOptions navOptions, @Nullable Extras navigatorExtras);

Если вы измените в своем build.gradle следующие зависимости

implementation "android.arch.navigation:navigation-fragment-ktx:1.0.0"
implementation "android.arch.navigation:navigation-ui-ktx:1.0.0"

вы получите ошибку компилятора из-за пропущенного оператора return.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...