java判断空值“”或者null

来源:互联网 发布:sql select语句 where 编辑:程序博客网 时间:2024/06/05 20:33

StringUtils.isEmpty(XXX)的用法:
- StringUtils.isEmpty(null) = true
- StringUtils.isEmpty(“”) = true
- StringUtils.isEmpty(” “) = false
- StringUtils.isEmpty(“bob”) = false
- StringUtils.isEmpty(” bob “) = false

上边的StringUos工具类只能判断此值是否为空字符串””和null,但是如果传入的是:” “这种是不能判断出来的。如果你在接受参数的时候就trim(),这样是会报空指针的,例如:

//获取参数openIdString openId = graduationInfo.getOpenId().trim();if(openId.equals("") || StringUtils.isEmpty(openId)){        graduationReturnVO.setRspCode((long)0);        graduationReturnVO.setRspDesc("openId不能为空");        LogUtil.business(logFlag+"-MESSAGE#{}", "openId为空");        return graduationReturnVO;}

这样的话
1.如果传入的openId是空字符串”“,在第一行就会出现空指针异常。
2.if条件句里边也不能写openId.equals(“”) 这样会出现空指针,正确的应该是”“.equals(openId)。
3.既然写了StringUtils.isEmpty(openId)则前边的openId.equals(“”)就没必要了。

下边做一个简单的测试:

package com.test;import org.apache.commons.lang3.StringUtils;/** * @Description :测试java判空和trim * @author : wmm * @date : 2017年7月20日 下午2:34:13 */public class TestTrim {    public static void main(String[] args) {        String aaa = " ";        String bbb = "";        String ccc = null;        String ddd = "java";        String eee = " eee ";        //System.out.println(aaa.trim());        if(StringUtils.isEmpty(aaa)){            System.out.println("aaa是空字符串或者null");        }else if("".equals(aaa.trim())){            System.out.println("aaa是空格,沒有值");        }else{            System.out.println("aaa为字符串有值");        }        //===================================        if(StringUtils.isEmpty(bbb)){            System.out.println("bbb是空字符串或者null");        }else if("".equals(bbb.trim())){            System.out.println("bbb是空格,沒有值");        }else{            System.out.println("bbb为字符串有值");        }        //===================================        if(StringUtils.isEmpty(ccc)){            System.out.println("ccc是空字符串或者null");        }else if("".equals(ccc.trim())){            System.out.println("ccc是空格,沒有值");        }else{            System.out.println("ccc为字符串有值");        }        //===================================        if(StringUtils.isEmpty(ddd)){            System.out.println("ddd是空字符串或者null");        }else if("".equals(ddd.trim())){            System.out.println("ddd是空格,沒有值");        }else{            System.out.println("ddd为字符串有值");        }        //===================================        if(StringUtils.isEmpty(eee) || "".equals(eee.trim())){            System.out.println("eee是空字符串 或 null 或 eee是空格,沒有值");        }else{            System.out.println(eee.trim()+","+"eee为字符串有值");        }    }}

控制台打印值是:
aaa是空格,沒有值
bbb是空字符串或者null
ccc是空字符串或者null
ddd为字符串有值
eee,eee为字符串有值