关于equals的问题
来源:互联网 发布:贵州广电网络好用吗 编辑:程序博客网 时间:2024/06/05 02:22
关于equals的问题
equals中空指针的问题
[TOC]
在EasyMall的项目重构中发现的问题
也怪我当时并没有没有仔细想回来之后才发现的
错误代码
String remname = request.getParameter("remname"); UserService service = new UserService(); User user = service.loginUser(username, password); if (user != null) {// 用户密码正确 // 4.实现记住用户名功能键 if ("true".equals(remname)) { Cookie cookie = new Cookie("remname", username); cookie.setPath(request.getContextPath() + "/"); cookie.setMaxAge(60 * 60); response.addCookie(cookie); } else { Cookie cookie = new Cookie("remname", ""); cookie.setPath(request.getContextPath() + "/"); cookie.setMaxAge(0); response.addCookie(cookie); }
在这里”true”.equals(remname)方法不会产生空指针但是使用remname.equals(“true”)方法就会产生空指针异常.
错误原因
- 在equals的底层代码中,会判定字符串是否为空,如果经一个可以为空的字符串放在前面比较的话会产生空指针异常!!!这也是为什么我们在重写equals的方法时要写防止为null.
- 在使用方法的时候也要注意null不可以调用方法,所以要保持常量在前.
反思
- 在写代码的时候如果该变量可以为空或者在付初值的时候为null那就要避免放到equals前面进行比较.
- 一定要遵循常量在前的习惯.
借鉴的资料
- 关于equals的问题
阅读全文
0 0
- 关于equals的问题
- 关于equals的问题
- 关于equals有空指针异常的问题
- 关于使用equals比较字符串的问题
- 44-关于null和equals比较的时候的问题
- 关于equals的使用
- 关于equals的解说
- hashtable里面关于equals和hashcode的覆盖重写问题
- 关于使用equals()函数报 空指针 的错误问题
- 关于覆写equals与hashCode的问题。
- equals的问题
- 关于equals()的重载例子
- 关于equals方法的多态题
- 关于equals方法的多态题
- 关于equals()的使用
- 关于equals的一些看法
- 关于java的equals方法
- equals()方法的重写问题
- 返回手机当前手机所有应用相关信息
- prometheus+grafana构建应用监控(二)
- 汉诺塔轨迹---递归
- 欢迎使用CSDN-markdown编辑器
- 腾讯机器学习笔试模拟考
- 关于equals的问题
- Linux中的Apache的相关配置
- FCC Validate US Telephone Numbers
- 浅谈css中的元素定位
- Keras学习笔记---keras做回归问题
- java-工具-tomcat-加载机制
- fastDFS原理和使用
- 操作系统知识点
- 设计模式 1-23 单例模式