大家好,第一次写博客,一直想写博客,用于自我总结,也用于帮助新同学成长。

平常我们开发的时候,用到很多非空判断,但是很多同学用到的地方不是很准确,这里,我把自己平时遇到的坑跟大家说说。我废话不多,只想写干货,希望大家喜欢。

情景一:字符串的非空判断“”

对于字符串的判断,比如字符串str,其实我们很多同学直接 str != null 去判断,这样是极其不准确的,因为str ==" "的时候,我们其实也想拦住,但的确  " "!= null,我们这行判断就没有限制住空字符串的情况。官方给到的是org.apache.commons.lang.StringUtils工具类,这个里面其实原理也是做了一层str != null,但是同时也判断了该字符串的长度,所以即使str ==" "的时候,用了工具类去判断,也会被校验住。

记住一句话,无论任何时候,对于字符串的判断,用org.apache.commons.lang.StringUtils工具类去判断就可以:非空判断用StringUtils.isNotEmpty(str)或者StringUtils.isNotBlank(str);如果是判断字符串为空,用StringUtils.isEmpty(str)或者StringUtils.isBlank(str);这样能保证你判断这一步不会出错。

情景二:数字的非空判断

       我们对于数字判断,不管是什么类型,short,long,int等等,其实都可以用不等于null去比较,这不会出什么问题。

  情景三:集合的非空判断

       对于集合的非空判断,我们很多情景是查询出一个list,然后需要用到这个list,但是必须要进行非空判断,这个时候,很多人还是用list !=null 去比较,其实会出问题的,比如如果你去这样先定义一个集合List<String> list=new ArrayList<>(),这个list 并不是为null,所以你自己去判断的时候如果还是用list !=null,显然是拦不住,这个判断没起作用。

对于集合的非空判断,我们直接用CollectionUtils.isNotEmpty(list)或者CollectionUtils.isNotBlank(list)去判断不会出错,因为里面会对元素数量进行判断。

 情景三:map的非空判断

       同理,map的非空判断,我们需要用map != null && map.size()>0去判断,这个同理,我们创建一个map对象的时候,这个map不是null,但是里面如果没有元素,我们对数量进行了判断,才真正意义上做到了对map的非空校验。

java基础之----非空判断的更多相关文章

  1. [经验] 关于 Java 中的非空判断

    在写项目的时候, 遇到一个问题 假设有一个控制层接口为: @ResponseBody @RequestMapping(value = "test", method = Reques ...

  2. java8 Optional优雅非空判断

    java8 Optional优雅非空判断 import java.util.ArrayList;import java.util.List;import java.util.Optional; pub ...

  3. proto3 不支持内建类型的非空判断即 hasXXX

    proto3 移除了内建类型的非空判断方法 即代码生成工具不会为 bool int 等类型生成has方法 有使用过proto2 或者其它rpc 框架的人都知道使用has 方法去判断消息里的值是否设置, ...

  4. List和String的非空判断

    1.如果想判断list是否为空,可以这么判断: if(null == list || list.size() ==0 ){ //为空的情况 }else{ //不为空的情况 } 2.list.isEmp ...

  5. 异常分类和异常的产生过程解析和Objects非空判断

    java.lang.Throwable类是java语言中所有错误的异常的超类. Exception:编译期异常,进行编译(写代码)java程序出现的问题 RuntimeExeption:运行期异常,j ...

  6. C/C++ 指针的非空判断

    一定要分得清楚C和C++的“空指针常量”不是一样的.C标准不保证NULL等于0,所以做指针非空判断时,应该用if(p != NULL):因为“上下文转换到bool值”的统一性,C++就应该用if(p) ...

  7. JAVAWEB servlet验证登录时进行完全的非空判断防止空值登录

    如果不进行完全的非空判断,那么对 "" 这种类型的空值就会导致直接登录 所以需要用下面的字符串处理方法对其进行判断 这样就可以防止空值登录了 容易出现的混淆错误: 这里的空值登录容 ...

  8. String的非空判断、Integer的非空判断、list的大小判断,对象的非空判断

    1.String的非空判断. StringUtils.isNotEmpty(String str); 2.Integer的非空判断. null != Integer ; 3.list的大小判断. li ...

  9. python字符串非空判断

    1. 字符串非空判断 2. list 非空判断

随机推荐

  1. day2_python之字符编码

    一 .计算机基础知识 二.文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的, ...

  2. Laravel 5.5 将会要求 PHP 7.0+

    Laravel 5.5 都要用 PHP7 了呢!你还在用 PHP 5 吗? Laravel 一直是一个精 (sheng) 进 (ji) 不 (hen) 休 (kuai) 的框架.就在前几天,下图这位 ...

  3. hdu 1026 Ignatius and the Princess I(bfs)

    Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (J ...

  4. LuaForWindows_v5.1.4-45和lua-5.1.4.tar.gz

    Lua学习笔记(一) 安装调试环境 Lua学习笔记(一) 安装调试环境     觉得自己是该掌握一门脚本语言的时候了,虽然曾经用过C# 和JavaScript 写过Unity3D的脚本.但是,总觉得那 ...

  5. H3C NAT ALG

  6. Java5新特性对数组的支持

    增强for循环 → for-each for (参数类型参数名 : 数组名) { 代码块 } Eg: package reviewDemo; public class Demo6 { public s ...

  7. Gora是一个类似Hibernate的ORM框架

    Gora是一个类似Hibernate的ORM框架,但是不只是支持关系数据库,更重要支持NoSQL之类大数据的存储. 支持NoSQL之类大数据的存储 Apache Gora是一个开源的ORM(Objec ...

  8. Python--day33--当面试时候问到如何解决黏包问题?的回答。

  9. 用webAudio和canvas实现音频可视化

    前两天遇到了要显示音频波形图的需求,因为时间紧,就直接用了wavesufer.js,这两天有空,就研究了一下怎么用webAudio实现音频的可视化. 大致流程是对音源进行解析,解析得到的数据是个频谱数 ...

  10. yum安装错误:CRITICAL:yum.cli:Config Error: Error accessing file for config file:///home/linux/+

    上网搜了一下然后自己总结一份 : 出现原因:yum可能没有,或者损坏 解决: 第一步:下载   wget  http://yum.baseurl.org/download/3.2/yum-3.2.28 ...