当对象或对象属性为空时,如何安全给对象或对象属性添加默认值
今天遇到的问题,也是写代码的习惯问题,逻辑没有问题,但不规范,也不安全,
容易出现漏洞。
先将代码贴出:
String isPrintLogo = vodInfoDto.getIsPrintLogo();
if(!isPrintLogo.equalsIgnoreCase("0")){
isPrintLogo="1";
demandVideoInfo.setIsPrintLogo(isPrintLogo);
}
代码原意为:判断对象属性,并给对象的该属性判断是否为预定的值,
如果不是,则进行设置默认值。
本能的想为对象的属性不为空,当对象的属性不为空时,代码则会正常运行。
但当对象为空或对象的属性为空是,则会产生空指针异常。
遇到了以为大神,请教他之后,他给出了两种方案,
一种是 :
String isPrintLogo = vodInfoDto.getIsPrintLogo();
if(!"0".equalsIgnoreCase("isPrintLogo")){
isPrintLogo="1";
demandVideoInfo.setIsPrintLogo(isPrintLogo);
}
将比较的属性值放入到equals后面中,也会规避异常出现。
另一种是:
demandVideoInfo.setIsPrintLogo("null".equalsIgnoreCase(isPrintLogo)?"1":isPrintLogo);
通过一个三元运算,就可以轻松搞定,实在是高,特此进行记录。
当对象或对象属性为空时,如何安全给对象或对象属性添加默认值相关推荐
- mybatis-plus 属性为空时判断问题
mybatis-plus 属性为空时判断问题 最近在做项目时,发现前端调用查询接口,发现接口返回数据不对.我通过日志发现前端查询字段值为空时,竟然被当作一个条件,因为后端采用的mybatis-plus ...
- 为 protocol 中属性添加默认值
首先放个简单的Playground做下示范. 普通 protocol 中的 get set protocol中属性可以声明为{ get }或者{ get set }.大多数人第一眼肯定觉得{ get ...
- add_argument函数action参数的store_true==》在运行程序添加参数时直接输入变量名,可以省略对应的默认值True或者False
import argparseparser = argparse.ArgumentParser(description="description")parser.add_argum ...
- Java对性别默认值为男_当对象或对象属性为空时,如何安全给对象或对象属性添加默认值...
今天遇到的问题,也是写代码的习惯问题,逻辑没有问题,但不规范,也不安全, 容易出现漏洞. 先将代码贴出: String isPrintLogo = vodInfoDto.getIsPrintLogo( ...
- iReport属性为空时报表显示空白
在使用iReport设计报表时,经常会遇到报表内容为空填充空白的情况,如下图所示 红色框标注起来的部分按照预想应该显示这样的效果, 在这个空白区域无论使用Field或者Parameter都是一样的效果 ...
- java 字段为空设置默认值_java – 当字段为空时使用MyBatis添加默认值
当我的字段为空时,我想从数据库中插入默认值.我使用的是Oracle数据库. CREATE TABLE "EMPLOYEE" ("COL1" VARCHAR2(8 ...
- sql count为空时显示0_C0010负坐标显示为正数+红色0值参考线
小伙伴们早上好啊! 今天继续为大家分享柱形图的美化技巧. 希望大家认真阅读Excel文件和教程,有的图表看起来简单,实际上在细节处理上用了很多技巧,大家要多多体会. C0010-负坐标显示为正数+红色 ...
- 复杂属性的设计时支持
1.认识默认属性浏览器支持 让我们再认识一下属性,大家知道每个属性都是有类型的,最熟悉就是string,int这些类型了,vs2005属性浏览器对这些属性类型进行了识别, 如下例子 (1)table控 ...
- 约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏
文章目录 1. 约束(constraint)概述 2. 非空约束 3. 唯一性约束 4. PRIMARY KEY 约束 5. 自增列:AUTO_INCREMENT 6. FOREIGN KEY 约束 ...
最新文章
- Linux 计划任务整理
- Redis - RedisTemplate及4种序列化方式深入解读
- 我知道乐观锁,但是我的确不知道CAS啊,到底什么是CAS
- 摔跤视频软件测试,Apple Watch 4摔倒检测立功:成功救人一命,网友:马上入手!...
- 在vm中安装linux虚拟机,如何在vm虚拟机中安装linux
- 求逆元的两种方法+求逆元的O(n)递推算法
- JAVA多线程→进程与线程、线程周期、实现线程Thread、start()sleep()join()、线程互斥synchronized()锁当前对象this或方法、线程同步wait()notify()
- ege和c语言做贪吃蛇,新萌 求大神给一个 EGE做的贪吃蛇代码 带注释的 没注释的看不懂...
- 手把手教你编写一个简单的PHP模块形态的后门
- 用wim还原服务器系统,如何使用黑鲨PE中的Dism++工具对WIM文件进行系统还原
- IDL处理葵花8Himawari-8标准HSD数据——制作大气校正数据集(卫星角度数据)
- Excel的模板导出+背景水印
- ps抠图——抠出自己想要的素材(钢笔工具的使用)
- 如何使用“MRT”恶意软件删除工具
- H5学习笔记(九)高度塌陷问题
- 【谷歌地图--DirectionsSDK集成】
- JAVASE相关知识点
- 微信5秒超时 php异步,微信公众号-5秒内不回复测试并处理方案,顺便复习php 时间执行...
- synaptic 图形界面下载工具
- 电巢:千亿美金砸向半导体,印度能否实现“赶中超美”的野心?