在下面显示的代码中,如何从这个可观察量(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;
}
});