java基础之----非空判断
大家好,第一次写博客,一直想写博客,用于自我总结,也用于帮助新同学成长。
平常我们开发的时候,用到很多非空判断,但是很多同学用到的地方不是很准确,这里,我把自己平时遇到的坑跟大家说说。我废话不多,只想写干货,希望大家喜欢。
情景一:字符串的非空判断“”
对于字符串的判断,比如字符串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基础之----非空判断的更多相关文章
- [经验] 关于 Java 中的非空判断
在写项目的时候, 遇到一个问题 假设有一个控制层接口为: @ResponseBody @RequestMapping(value = "test", method = Reques ...
- java8 Optional优雅非空判断
java8 Optional优雅非空判断 import java.util.ArrayList;import java.util.List;import java.util.Optional; pub ...
- proto3 不支持内建类型的非空判断即 hasXXX
proto3 移除了内建类型的非空判断方法 即代码生成工具不会为 bool int 等类型生成has方法 有使用过proto2 或者其它rpc 框架的人都知道使用has 方法去判断消息里的值是否设置, ...
- List和String的非空判断
1.如果想判断list是否为空,可以这么判断: if(null == list || list.size() ==0 ){ //为空的情况 }else{ //不为空的情况 } 2.list.isEmp ...
- 异常分类和异常的产生过程解析和Objects非空判断
java.lang.Throwable类是java语言中所有错误的异常的超类. Exception:编译期异常,进行编译(写代码)java程序出现的问题 RuntimeExeption:运行期异常,j ...
- C/C++ 指针的非空判断
一定要分得清楚C和C++的“空指针常量”不是一样的.C标准不保证NULL等于0,所以做指针非空判断时,应该用if(p != NULL):因为“上下文转换到bool值”的统一性,C++就应该用if(p) ...
- JAVAWEB servlet验证登录时进行完全的非空判断防止空值登录
如果不进行完全的非空判断,那么对 "" 这种类型的空值就会导致直接登录 所以需要用下面的字符串处理方法对其进行判断 这样就可以防止空值登录了 容易出现的混淆错误: 这里的空值登录容 ...
- String的非空判断、Integer的非空判断、list的大小判断,对象的非空判断
1.String的非空判断. StringUtils.isNotEmpty(String str); 2.Integer的非空判断. null != Integer ; 3.list的大小判断. li ...
- python字符串非空判断
1. 字符串非空判断 2. list 非空判断
随机推荐
- day3_python之函数基础知识
一 .为何要用函数之不用函数的问题 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维 ...
- Getting started with the basics of programming exercises_5
1.编写函数,把由十六进制数字组成的字符串转换为对应的整型值 编写函数htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值.字符串中允许包含的数字包括:0~9 ...
- Ubuntu 14.04 使用ntfs-config解决开机自动挂载NTFS分区的方法
先安装: sudo apt-get install ntfs-3g ntfs-config 再配置一下: sudo ntfs-config 然后就会弹出来一个对话框,选择你需要挂载的分区,点应用,再选 ...
- 很奇怪的问题(Chrome)
<p>感觉这个问题跟Chrome浏览器本身的一些策略有关.</p> 在我写完登录页面后 准备美滋滋的登录验证下的时候,确一直卡在数据获取上了,查看NetWork,发现是Chro ...
- C#的选择语句
一.选择语句 if,else if是如果的意思,else是另外的意思,if'后面跟()括号内为判断条件,如果符合条件则进入if语句执行命令.如果不符合则不进入if语句.else后不用加条件,但是必须与 ...
- mysql 第三课 jdbc基础操作
jdbc连接可以大致分为5步: 1.注册驱动 2.获取连接 3.编写语句 4.执行语句 5.关闭连接 其中可以设置参数等等. 1.我们先建一个项目目录: 其中com.etc.dao为数据访问对象 co ...
- python编程之进程
进程:运行中的程序 进程和操作系统的关系:进程是操作系统调度和资源分配的最小单位,是操作系统的结构基础. 那么为什么要有进程呢? 程序在运行时,会使用各种硬件资源,如果他们之间没有界限,那么程序之间的 ...
- P1054 全组合
题目描述 给定n,m,按字典序输出所有从1-n里面取出m个数的组合.比如从1-3里面取出2个的组合是: 1 2 1 3 2 3 输入格式 输入两个数n,m.其中 \(0<n<=10,0&l ...
- vue 使用webpack打包后路径报错以及 alias 的使用
一.vue 使用webpack打包后路径报错(两步解决) 1. config文件夹 ==> index.js ==> 把assetsPublicPath的 '/ '改为 './' 2. b ...
- ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(4)之业务仓储工厂
在创建业务层之前,我们先来熟悉一下业务仓储工厂Bobo.Repository.dll程序集,后续的业务操作,我们都将通过这个程序集中的方法传递数据库操作,其介于数据库操作与业务层之间,详情可前往< ...