今天遇到的问题,也是写代码的习惯问题,逻辑没有问题,但不规范,也不安全,

容易出现漏洞。

先将代码贴出:

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);
通过一个三元运算,就可以轻松搞定,实在是高,特此进行记录。

当对象或对象属性为空时,如何安全给对象或对象属性添加默认值相关推荐

  1. mybatis-plus 属性为空时判断问题

    mybatis-plus 属性为空时判断问题 最近在做项目时,发现前端调用查询接口,发现接口返回数据不对.我通过日志发现前端查询字段值为空时,竟然被当作一个条件,因为后端采用的mybatis-plus ...

  2. 为 protocol 中属性添加默认值

    首先放个简单的Playground做下示范. 普通 protocol 中的 get set protocol中属性可以声明为{ get }或者{ get set }.大多数人第一眼肯定觉得{ get ...

  3. add_argument函数action参数的store_true==》在运行程序添加参数时直接输入变量名,可以省略对应的默认值True或者False

    import argparseparser = argparse.ArgumentParser(description="description")parser.add_argum ...

  4. Java对性别默认值为男_当对象或对象属性为空时,如何安全给对象或对象属性添加默认值...

    今天遇到的问题,也是写代码的习惯问题,逻辑没有问题,但不规范,也不安全, 容易出现漏洞. 先将代码贴出: String isPrintLogo = vodInfoDto.getIsPrintLogo( ...

  5. iReport属性为空时报表显示空白

    在使用iReport设计报表时,经常会遇到报表内容为空填充空白的情况,如下图所示 红色框标注起来的部分按照预想应该显示这样的效果, 在这个空白区域无论使用Field或者Parameter都是一样的效果 ...

  6. java 字段为空设置默认值_java – 当字段为空时使用MyBatis添加默认值

    当我的字段为空时,我想从数据库中插入默认值.我使用的是Oracle数据库. CREATE TABLE "EMPLOYEE" ("COL1" VARCHAR2(8 ...

  7. sql count为空时显示0_C0010负坐标显示为正数+红色0值参考线

    小伙伴们早上好啊! 今天继续为大家分享柱形图的美化技巧. 希望大家认真阅读Excel文件和教程,有的图表看起来简单,实际上在细节处理上用了很多技巧,大家要多多体会. C0010-负坐标显示为正数+红色 ...

  8. 复杂属性的设计时支持

    1.认识默认属性浏览器支持 让我们再认识一下属性,大家知道每个属性都是有类型的,最熟悉就是string,int这些类型了,vs2005属性浏览器对这些属性类型进行了识别, 如下例子 (1)table控 ...

  9. 约束,MySQL约束,非空默认值,主键外键唯一自增,完整详细可收藏

    文章目录 1. 约束(constraint)概述 2. 非空约束 3. 唯一性约束 4. PRIMARY KEY 约束 5. 自增列:AUTO_INCREMENT 6. FOREIGN KEY 约束 ...

最新文章

  1. Linux 计划任务整理
  2. Redis - RedisTemplate及4种序列化方式深入解读
  3. 我知道乐观锁,但是我的确不知道CAS啊,到底什么是CAS
  4. 摔跤视频软件测试,Apple Watch 4摔倒检测立功:成功救人一命,网友:马上入手!...
  5. 在vm中安装linux虚拟机,如何在vm虚拟机中安装linux
  6. 求逆元的两种方法+求逆元的O(n)递推算法
  7. JAVA多线程→进程与线程、线程周期、实现线程Thread、start()sleep()join()、线程互斥synchronized()锁当前对象this或方法、线程同步wait()notify()
  8. ege和c语言做贪吃蛇,新萌 求大神给一个 EGE做的贪吃蛇代码 带注释的 没注释的看不懂...
  9. 手把手教你编写一个简单的PHP模块形态的后门
  10. 用wim还原服务器系统,如何使用黑鲨PE中的Dism++工具对WIM文件进行系统还原
  11. IDL处理葵花8Himawari-8标准HSD数据——制作大气校正数据集(卫星角度数据)
  12. Excel的模板导出+背景水印
  13. ps抠图——抠出自己想要的素材(钢笔工具的使用)
  14. 如何使用“MRT”恶意软件删除工具
  15. H5学习笔记(九)高度塌陷问题
  16. 【谷歌地图--DirectionsSDK集成】
  17. JAVASE相关知识点
  18. 微信5秒超时 php异步,微信公众号-5秒内不回复测试并处理方案,顺便复习php 时间执行...
  19. synaptic 图形界面下载工具
  20. 电巢:千亿美金砸向半导体,印度能否实现“赶中超美”的野心?

热门文章

  1. 注解+反射优雅的实现Excel导入导出(通用版)
  2. 用Java实现天天酷跑(附源码),这个真的有点强了!
  3. 14 个 Spring MVC 顶级技巧,随时用随时爽,一直用一直爽
  4. 这是我见过最通俗易懂的 装饰者模式 讲解了!
  5. 面试官问:MySQL 的自增 ID 用完了,怎么办?
  6. IntelliJ IDEA 2019.3这回真的要飞起来了,新特性抢先看!
  7. 怎么样做一个合格而又可爱的面试官
  8. 分布式之消息队列复习精讲
  9. KDD Cup 2020 推荐系统赛道:数据分析
  10. 结营答辩!28天!Datawhale助力公益AI一起学,点亮最暖寒假!