java判断空值“”或者null

时间:2020-12-01 19:58:19

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

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

//获取参数openId
String 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为字符串有值