从if块返回Java

Cat*_*esl 0 java if-statement return

我有这段琐碎的代码:

public ModelAndView postLoginPage(@ModelAttribute("user") User user, ModelMap model,
                                      HttpServletRequest req, HttpServletResponse res) {

  if (user != null) {
    logger.log(Level.INFO, "\n\n [*][*][*][*][*] user not null ");
    if (user.getUsername().equals("jon")){
      return new ModelAndView("echo", "user", user);
    }
  } else 
    return new ModelAndView("oops", "user", user);       
}
Run Code Online (Sandbox Code Playgroud)

如果返回嵌套在double中.似乎java抱怨这不是一个可行的退货声明?为什么这是一个错误?

Bat*_*eba 6

return所有控制路径都没有明确说明.Java不允许这样做.

你需要处理user不存在null user.getUsername().equals("jon")不存在的情况true.

有什么特别之处"jon"

  • 不一定没有.但是,标记为除"void"*之外的任何函数必须*始终返回一个值. (2认同)