业务参数判空和判断null
来源:互联网 发布:海信电视看电影软件 编辑:程序博客网 时间:2024/05/22 16:00
- null的问题:
JAVA类型有基础变量类型、引用类型。
(1)对基础变量类型,如果未经初始化JAVA会自动开辟空间并赋值。int、byte、short、long为0;float、double为0.0;boolean为false。
(2)对引用变量类型,JAVA同样会对未经初始化的变量自动赋值,为NULL。
(因为NULL指的是不确定对象,所以适用于引用类型,不适用于基础变量类型。)
再说NullPointerException异常
指针,就是java中的对象的引用。比如String a;这个a就是指针。
空指针NullPointer,指针的内容为空,比如指针a,如果令它指向null,就是空指针。
空指针异常NullPointerException,一个指针为NULL。本身对象就为空了,没有方法给你调用,你在使用该对象的方法,就强人所难了。再说未经初始化的变量JAVA会自动报错。比如String a=null,你还要用a的方法,比如a.equals( String x);那就会产生空指针异常。
项目中遇到很多了NullPointerException问题,大致一下集中情况:
(1)定义了一个对象引用,但是没有new 直接拿过来使用。比如String a = null,List list = null;
(2) 没有考虑是否为空,直接获取或者返回的对象为空。直接使用该对象。
- 空问题:
空值一般是指对象的参数值为空字符串,比如,obj.value=”;而null一般是指对象为空,即obj = null;
一个对象为null,肯定取不到它的所有参数值;若对象不为空,取到它的某个参数的值也可能为空的。
比如,
User user1 = null;user1.getId()=null//记录不存在User user2 = new User();user2.getId()=''//记录存在,但是值为空
- 项目中的重用判断:
(1)String
类型不为null和空
if (Utils.isEmpty(strParentId) { throw new Exception("参数不能为空!"); }
源码:
public static boolean isEmpty(String value) { if (value == null || value.isEmpty()) { return true; } return false;} public boolean isEmpty() { return value.length == 0; }
(2)整型Integer
if (id == null) { throw new Exception("参数不能为空!"); }
这里我就习惯用了“”.quals(id)去判空,被team笑了小半年。整型不需要”“.equal(id),整型是不能为空的。项目中使用了Integer类型,Integer是包括基本类型int的包装类,不给赋值的时候为null。而int基本类型初始化是不为空的。两种情况加起来,integer只需要判断null值就可以。
(3)list类型不为空
if (CollectionUtils.isEmpty(list)) { throw new Exception("参数异常!");}
源码:
public static boolean isEmpty(Collection<?> collection) { return (collection == null || collection.isEmpty()); } public boolean isEmpty() { return size() == 0; }
(3)map不为空
if (CollectionUtils.isEmpty(existMap)) {}if (existMap.isEmpty()) { //这种也会报错。}
推荐一篇文章:
http://blog.csdn.net/revivedsun/article/details/46581691
- 业务参数判空和判断null
- JAVA判空、null
- javascript判断空和null
- velocity判断空和null
- Velocity判断null和空
- Mapper.xml文件中如何判断多个参数不为空和null
- MySql 判断null和空内容
- el表达式null和空的判断
- mysql 空值和null的判断
- 用StringUtils判断null 和 空串“”
- 判断字符串为空和null
- 空字符串 null 判断
- java空 null 判断
- 使用mybatis时Mapper.xml文件中如何判断多个参数不为空和null
- javascript的动态参数判空操作
- ios 数据解析中值为Null和空的判断
- velocity模板判断null和空字符串方法
- JS 中判断空值 undefined 和 null
- 直接排序、选择排序(Java实现)
- java中的运算符
- leetcode657. Judge Route Circle
- 图解单片机下载程序电路原理之USB转串口线、CH340、PL2303、MAX232芯片的使用!
- 移动端开发样式CSS Hack和一些问题的处理
- 业务参数判空和判断null
- 在centos7下搭建FTP,使本地电脑与虚拟机能上传下载文件
- 11.30学习计划
- 数字图像的空间域滤波和频率域滤波
- Bixby在中国市场上线,三星推动智能手机全面跨入AI时代
- 一个双线性配对(双线性映射)的例子
- guava缓存
- 原生XHR对象
- 微信小程序之起步(更新中)