猪爷爷先生 2017-09-07 04:20 采纳率: 100%
浏览 1776
已采纳

简单登录用户检测,为何会提示空指针异常?

service类

//查询帐号结果做判断逻辑,u对象已存有表单参数
public void findUser(User u){
    //1 根据登陆名称查询登陆用户,dao类udsave方法查询该帐号已经可以返回所有信息
    User existUser = udsave.getByUserName(u.getUserName());
    //2 判断用户是否存在.不存在=>提示用户名不存在
    if(existUser==null){
        System.out.println("用户名不存在!");
    }
    //3 判断用户密码是否正确=>不正确=>提示密码错误
    if(!existUser.getUser_password().equals(u.getUser_password())){
        System.out.println("密码错误!");
    }
}

功能实现都没有问题,输入正确帐号和错误密码会显示密码错误
但是输入错误帐号,existUser为null,控制台会打印“用户名不存在”还有空指针异常??
这个空指针异常是怎么来的呢?。。好奇怪啊
  • 写回答

5条回答 默认 最新

  • 砸死接触 2017-09-07 05:31
    关注

    因为打印了“用户名不存在”之后,程序会继续向下进行,下面的existUser.getUser_password() 这个东西就错了,报空指针了!!!

    楼主要么在楼主的第二步判断用户是否存在的if里加return,要么把第三步的if 改成 else if 或者直接放else里,当然有其他方式!!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId
  • ¥15 delphi7 HMAC_SHA256方式加密
  • ¥15 关于#qt#的问题:我想实现qcustomplot完成坐标轴
  • ¥15 下列c语言代码为何输出了多余的空格