Java 判空工具方法大全
java 判空工具方法大全
- 前言
- 一、一般类型的判空
- 1、String 类型判空
- 2、包装类型判空
- 二、类对象判空
- 1、类对象判空
- 三、容器类型判空
- 1、List、Set 判空
- 2、Map 判空
前言
在实际开发中,应充分考虑操作对象为空的情况,请对程序中使用的对象进行严格的判空,否则会导致程序向数据库存储一些空数据或错误数据,或导致程序往预期外的方向执行,或者导致程序空对象异常等。
比如:
- 接收 Long 类型数据作为 username 用户账号进行登录验证时,该数据不应该为空。
- 根据 username 用户账号查询该用户对象后,进行 getPassword 操作,若该对象为空,则产生空对象异常。
- 对 List 空对象列表进行操作,产生空对象异常。
- 如此等等。
严格的对象判空有利于:
- 提前排除掉一些用户的错误操作,进行错误拦截,防止接收一些无用数据或错误数据。
- 防止未充分考虑到对象的数据范围,而导致程序的执行流程与预期不一致,导致程序错误。
- 防止对空容器的 get(0) 等操作引发的空对象异常。
- 防止对空对象的 getName 等获取属性操作而引发的空对象异常。
一、一般类型的判空
1、String 类型判空
String 类型不能用 == null
来判空,String 类型的排除空值的情况有如下几种:
- 值为 null
- 值为空字符串 “”
- 值为空格 " "
要想在传值时排除这几种情况,可以用 org.apache.commons 包中的 StringUtils 工具类。或者其他包中的 StringUtils 或 StringUtil 工具类。
(1)排除 String 值为 null 、或 “” 空字符串时,使用 StringUtils.isEmpty() 方法。
- 排除值为 null
- 排除值为空字符串
import org.apache.commons.lang3.StringUtils;String str = new String();
if (StringUtils.isEmpty(str)) {return "字符串不能为空";
}
(2)排除 String 值为 null 、或 “” 空字符串、或空格字符串时,使用 StringUtils.isBlank() 方法。
- 排除值为 null
- 排除值为空字符串 “”
- 排除值为空格 " "
import org.apache.commons.lang3.StringUtils;String str = new String();
if (StringUtils.isBlank(str)) {return "字符串不能为空或空字符串";
}
2、包装类型判空
包装类 Integer、Long、Double 等包装类型的判空同一般类对象判空相同,使用 == null
。
Long studentId = new Long();
if (null == studentId) {return "Long对象不能为空";
}
二、类对象判空
1、类对象判空
类对象的判空用 ==null
就足够了。
Student student = new Student();
if (null == student) {return "类对象不能为空";
}
【注意】
在获取类对象
三、容器类型判空
1、List、Set 判空
List、Set 可以使用 org.apache.commons 提供的 CollectionUtils 工具类的判空。或者其他包提供的 CollectionUtils 和 CollectionUtil 工具类。
import org.apache.commons.collections4.CollectionUtils;List<String> list= new ArrayList<>();CollectionUtils.isEmpty(list); // true
CollectionUtils.isNotEmpty(list); // false
2、Map 判空
Map可以使用 org.apache.commons 提供的 MapUtils 工具类进行判空。或者其他包提供的 MapUtils 和 MapUtil 工具类。
import org.apache.commons.collections4.MapUtilsHashMap<String, Long> map = new HashMap<>();MapUtils.isEmpty(map); // true
MapUtils.isNotEmpty(map); // false
Java 判空工具方法大全相关推荐
- 【java】数组判空工具类
数组判空工具类 package com.dost.base.utils.extend;import java.util.List;/*** 数组工具*/ public abstract class A ...
- JS判断对象是否为空的方法大全
JS判断对象是否为空的方法大全 1.将json对象转化为json字符串,再判断该字符串是否为"{}" var data = {}; var b = (JSON.stringify( ...
- Java 优雅判空的方法
为了避免 NullPointerException 出现,我们经常会进行如下操作. if (object != null) {object.do(); } 那么每次使用一个不确定的对象,都需要进行一次 ...
- JAVA字符串判空的方法
1.记录自己工作中的问题:针对某些字符串进行判空时,出现的BUG StringUtils.hasText StringUtils.hasText(null) = falseStringUtils.ha ...
- java判空null前后,关于java:引不要再使用null判空了
以下文章来源于Hollis ,作者上帝爱吃苹果 对于Java程序员来说,null是令人头痛的货色.时常会受到空指针异样(NPE)的骚扰.连Java的发明者都抵赖这是他的一项微小失误. 那么,有什么方法 ...
- StringUtils isEmpty 和 isBlank 的区别 CollectionUtils判空的方法
本文讨论的 StringUtils 属于package org.apache.commons.lang; 文章目录 字符串判空检查 "" 和 null 的区别 isEmpty(St ...
- Java操作文件的方法大全
标题 最新工作涉及到文件操作的内容,顺带花点时间把各种业务场景的方法都总结出来,供大家参考 对应Maven依赖.这块提醒千万别倒错包,这块的方法本人都亲测过,如果报错看下依赖是否正确 <depe ...
- 优雅参数判空_java 方法参数怎么优雅校验?
不邀自来.这个问题,我之前也考虑过,包括异常处理,都是很繁琐的,不是核心的业务逻辑,但是充斥在代码的各个角落,很繁琐. 我的解决方案,是通过aop+注解的方式,无侵入式的解决. 1.第一步声明自定义注 ...
- java常用开发工具下载大全
Maven-3.5.2下载:https://pan.baidu.com/s/1iOzrLbJSvlmbofv6GlAT_g 密码:zeda 新版eclipse下载:https://pan.baidu. ...
最新文章
- linux的上传工具,Linux下精简版上传工具lrzsz
- Android NDK开发-3-环境搭建
- social science and IP
- ng-controller and ng-model的工作原理
- 使用ASP.NET Core 3.x 构建 RESTful API - 3.2 路由
- 32和64位jvm_我应该使用32位还是64位JVM?
- java 文件压缩_java实现文件压缩
- 一个单独的UDP数据包能够放入数据的最大长度是65508
- 笔记本电脑换内存条流程
- 关于iconfont字体图标在IE上无法显示的问题
- 仙道服务器维护,【正式服】2月14日例行更新维护公告
- IEEE认证Pdf格式失败问题
- 后端优化 | VINS-Mono 论文公式推导与代码解析分讲
- mysql修改游戏元宝_页游源码【武斗乾坤】自带安装启动教程+元宝游戏数据修改教程+自由一键游戏启动服务端...
- 【Docker】error pulling image configuration: download failed after attempts=6: dial tc
- layim之修改群聊头像
- Android桌面小组件---Widget组件开发(什么是Widget)
- 低端Windows平板汇总
- ADIS16400/ADIS16405带磁力计的三轴惯性传感器(2)
- 思科金牌、银牌代理商名录
热门文章
- VMware设置共享文件夹之后/mnt/hgfs里面什么也没有
- picoCTF - RE - Hurry up! Wait!
- python和perl语言的区别_Perl 和 Python 的比较 【转】
- vmware workstation 9 安装Ubuntu 12.04 WIN7 64 位 出现问题及解决办法
- i5 1135G7和R5 5600H 选哪个好
- 复现Dense Extreme Inception Network(pytorch)
- 统计文章单词频数(C语言)
- 软件开发Share the Cakes
- python123怎么注销账号_怎么注销账号
- docker容器的资源消耗