Java 怎样才能';我不能用新信息更新我的用户配置文件吗?

Java 怎样才能';我不能用新信息更新我的用户配置文件吗?,java,spring,spring-boot,java-ee-6,Java,Spring,Spring Boot,Java Ee 6,如果字符串loginExist=null或loginExist.equals(principal.getName()) 问题是我得到了NullPointerException 这是我的代码: // update profile @RequestMapping(value = "/updateRH", method = RequestMethod.POST) public ModelAndView updateRH(Principal principal, @ModelAttribute("use

如果
字符串loginExist=null
loginExist.equals(principal.getName())

问题是我得到了NullPointerException

这是我的代码:

// update profile
@RequestMapping(value = "/updateRH", method = RequestMethod.POST)
public ModelAndView updateRH(Principal principal, @ModelAttribute("user") user user) {
    ModelAndView mv = new ModelAndView();
    String loginExist = "";
    user rh = RhRepo.findByUsername(principal.getName());
    try {
        loginExist = userRepo.findCountUsername(user.getUsername());
    } catch (Exception e) {

    }
    System.out.println(loginExist);

    if (loginExist.equals(null) || loginExist.equals(principal.getName())) {
        user.setId(RhRepo.findByUsername(principal.getName()).getId());
        user.setPwd(encoder.encode(user.getPwd()));
        RhRepo.save(user);
    } else {
        String msg = "Username Deja exist !!!";
        mv.addObject("msg", msg);
    }

    mv.addObject("rh", rh);
    mv.setViewName("rhprofile");
    return mv;
}
当您试图从null对象调用方法时,如果loginExist为null,则loginExist.equals(null)将抛出NPE

使用:-

loginExist==null


相反。

所以问题是
user.getUsername()
用户
为空,试图获取其
用户名
会导致NullPointerException

在该调用之前添加检查,请尝试以下操作:

if (user != null) {
    loginExist = userRepo.findCountUsername(user.getUsername());
}

否则(如果为null),您需要先创建用户,然后再尝试从存储库中查找它。

您的代码不是null安全的,很多行可能会导致此问题。哪一行出现异常?loginExist=userRepo.findCountUsername(user.getUsername());这条线