假如这个地方可能为null,那他一定会为null
假如你的代码,在某个地方(比如controller层)提示你:这个方法调用可能会产生null,那么千万不要视而不见,在某一瞬间它一定会是null,势必报错。
/**
* 修改保存管理员
*/
@PostMapping("/admin/edit")
@ResponseBody
public Message editAdmin(Admin admin) {
//查询账户是否存在
Admin loginAdmin = adminService.findAdminByAdminName(admin.getAdminName());
if (loginAdmin != null) {
//根据管理员账号查到的管理员是不是当前管理员
if (!admin.getId().equals(loginAdmin.getId())) {
//不是当前管理员
return Message.error("账户已经被占用");
}
}
Admin oldAdmin = adminService.findAdminById(admin.getId());
//判断是否修改过密码(能走到这里,说明设置的账号是合法的,要么是自己的,要么是新的)
if (admin.getAdminPwd().equals(oldAdmin.getAdminPwd())) {//这里要用oldAdmin,而不是loginAdmin
//没修过
admin.setAdminPwd(null);
} else {
//重新加密,写入数据库
String pwd = DigestUtils.md5DigestAsHex(admin.getAdminPwd().getBytes());
admin.setAdminPwd(pwd);
}
//修改管理员
boolean flag = adminService.updateAdmin(admin);
if (flag) {
return Message.success();
} else {
return Message.fail();
}
}
上边代码的某一行一定得是oldAdmin.getAdminPwd(),假如写成loginAdmin.getAdminPwd(),就会有提示,一定要检查代码。
假如这个地方可能为null,那他一定会为null的更多相关文章
- 转!!Java中关于Null的9个解释(Java Null详解)
对于Java程序员来说,null是令人头痛的东西.时常会受到空指针异常(NPE)的骚扰.连Java的发明者都承认这是他的一项巨大失误.Java为什么要保留null呢?null出现有一段时间了,并且我认 ...
- scala(一)Nothing、Null、Unit、None 、null 、Nil理解
相对于java的类型系统,scala无疑要复杂的多!也正是这复杂多变的类型系统才让OOP和FP完美的融合在了一起! Nothing: 如果直接在scala-library中搜索Nothing的话是找不 ...
- mysql 索引列为Null的走不走索引及null在统计时的问题
要尽可能地把字段定义为 NOT NULL,即使应用程序无须保存 NULL(没有值),也有许多表包含了可空列(Nullable Column)这仅仅是因为它为默认选项.除非真的要保存 NULL,否则就把 ...
- mybatis查询返回的对象不为null,但是属性值为null
返回的对象不为null,但是属性值为null 代码如下: <resultMap id="BaseResultMap" type="com.trhui.ebook.d ...
- 又一个无效的列类型错误Error setting null for parameter #7 with JdbcType NULL . Try setting a different JdbcType for this parameter or a different jdbcTypeForNull configuration property. Cause: java.sql.SQLExcept
在更新数据时候出现的错误 更新代码如下: <update id="modify" parameterType="Standard"> update ...
- null的坑 和 比较运算符、相等运算符的隐式转换问题 (在javascript中,null>=0 为真,null<=0 为真,null==0却为假,null到底是什么?)
null在关系运算中的坑 & 关系运算符的隐式转换问题 注意: 比较运算符 和 相等运算符 的 ECMAscript 语法实现不同. 比较运算符 和 相等运算符 对数据进行了隐式转换, 相当于 ...
- Activity回传值报错:Failure delivering result ResultInfo{who=null,request=7,result = 0,data=null}
Activity A -----值-------> Activity B -----值-----> Activity A 场景:当A跳转到B,再从B直接点击返回按 ...
- 【spring data jpa】spring data jpa 中的update 更新字段,如果原字段值为null不处理,不为null则在原来的值上加一段字符串
示例代码: /** * 如果barCode字段值为null则不处理 * 如果barCode字段值不为null则在原本值的前面拼接 del: * @param dealer * @return */ @ ...
- 查询某个字段为null并且某个字段不为null的数据
查询代码为null且ggid不为null的公司名 select name_of_invested_company from dwtz WHERE code is NULL and ggid is no ...
- HashMap允许将null用作键 也允许将null作为值
HashMap不能保证元素的顺序,HashMap能够将键设为null,也可以将值设为null. 与之对应的是Hashtable,(注意大小写:不是HashTable),Hashtable不能将键和值设 ...
随机推荐
- Burp Suite Extension Development Guide
Burp Suite是什么? Burp Suite是一款Web应用程序渗透测试工具,可以帮助用户发现和利用Web应用程序中的漏洞,提高渗透测试的效率和精度. Web应用程序最常用的传输数据的协议就是H ...
- Solution -「BZOJ 3771」Triple
Description Link. 给你一个序列,你每次可以取 \(1\sim3\) 个数然后计算和,问你对于每一种和,方案数是多少. Solution 设一个 OGF \(A(x)=\sum_{i= ...
- LDA主题模型讲解及代码Python实现
目录 1. LDA主题模型详解 1.1 Beta/Dirichlet 分布的一个性质 1.2 LDA-math-MCMC 1.2.1 重要理解 1.3 Gibbs Sampling 2. 所需工具库 ...
- android 尺寸适配相关
Android上常见度量单位 px(像素):屏幕上的点,绝对长度,与硬件相关. in(英寸):长度单位. mm(毫米):长度单位. pt(磅):1/72英寸,point. dp(与密度无关的像素):一 ...
- WPF绘图(一):几何(Geometry)与形状(Shape)
1. Geometry 在数学中,我们可以用一个方程描述圆:x2+y2=25.这个方程描述的是,一个半径为5,中心点在(0,0)的圆.这种纯数学的描述就是Geometry(几何). 但此时,这个&qu ...
- H5-geolocation学习
geolocation--定位 PC--IP地址 精度比较低 IP库 Chrome -> Google 手机--GPS window.navigator.geolocation 单次 getCu ...
- QT打开摄像头(自定义取景器)
自建取景器 .h #ifndef CAMERASURFACE_H #define CAMERASURFACE_H #include<QAbstractVideoSurface> #incl ...
- YbtOJ 质数与约数 4.统计元素
搜不到题解,乐. 由题意,\(a_i\) 对答案有贡献当且仅当 \(i\in{[l,r]}\) 且对于 \(\forall a_j| {a_i},j\notin[l,r]\). 则对于每个 \(a_i ...
- python 远程操作svn
SVN操作脚本 安装模块 pip install pywinrm 脚本如下 #!/usr/bin/env python3 # coding=utf-8 # author:LJX # describe: ...
- python实现汉诺塔的图解递归算法
写在前面 工作闲来无事,看了python,写了一个汉诺塔. 还是蛮喜欢python这门语言的,很简洁. 正文 一.起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候 ...