从拉姆达表达回来



在下面显示的代码中,如何从这个可观察量(lambda 表达式(返回布尔值

loginActivityViewModel.checkEmailAndPassword(email,password).observe(this,(response)->{
        switch(response){
            case LoginActivityViewModel.EMPTY_EMAIL:
                handleError(emailWrapper, R.string.error_email_required);
                return false;
            case LoginActivityViewModel.INVALID_EMAIL:
                handleError(emailWrapper, R.string.error_enter_valid_email);
                return false;
            case LoginActivityViewModel.EMPTY_PASSWORD:
                handleError(passwordWrapper, R.string.error_password_required);
                return false;
        }
    });

这个语句块位于返回布尔值的函数中,但 IDE 在案例中告诉我意外的返回语句。提前感谢您的帮助

您尝试从可观察函数中返回,而不是从包含代码块的函数中返回。这行不通。假设对 checkEmailAndPassword 的调用是方法的重点,更好的选择是将回调函数传递给方法,而不是返回布尔值。

你缺少默认值:

loginActivityViewModel.checkEmailAndPassword(email,password).observe(this,(response)->{
    switch(response){
        case LoginActivityViewModel.EMPTY_EMAIL:
            handleError(emailWrapper, R.string.error_email_required);
            return false;
        case LoginActivityViewModel.INVALID_EMAIL:
            handleError(emailWrapper, R.string.error_enter_valid_email);
            return false;
        case LoginActivityViewModel.EMPTY_PASSWORD:
            handleError(passwordWrapper, R.string.error_password_required);
            return false;
        default:
            return false;
    }
});

相关内容

  • 没有找到相关文章