判断对象是否为空、字符串是否为空的方式
程序员文章站
2022-05-25 08:18:50
...
一、判断对象是否为空
package org.springframework.util;
ArrayList<Object> list = new ArrayList<>();
//结果:true
System.out.println(ObjectUtils.isEmpty(list));
//判断数组是否为空
String[] strings = new String[]{};
// true 0
System.out.println(ObjectUtils.isArray(strings));
System.out.println(strings.length);
这个方法在common.lang3中也存在,但是没有考虑到Optional的情况
以下为两者的源码
//springframework源码
public static boolean isEmpty(@Nullable Object obj) {
if (obj == null) {
return true;
} else if (obj instanceof Optional) {
return !((Optional)obj).isPresent();
} else if (obj instanceof CharSequence) {
return ((CharSequence)obj).length() == 0;
} else if (obj.getClass().isArray()) {
return Array.getLength(obj) == 0;
} else if (obj instanceof Collection) {
return ((Collection)obj).isEmpty();
} else {
return obj instanceof Map ? ((Map)obj).isEmpty() : false;
}
}
//common.lang3源码
public static boolean isEmpty(Object object) {
if (object == null) {
return true;
} else if (object instanceof CharSequence) {
return ((CharSequence)object).length() == 0;
} else if (object.getClass().isArray()) {
return Array.getLength(object) == 0;
} else if (object instanceof Collection) {
return ((Collection)object).isEmpty();
} else {
return object instanceof Map ? ((Map)object).isEmpty() : false;
}
}
二、判断字符串是否为空
1、使用Common.lang3下的StringUtils(建议)
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.10</version>
</dependency>
//推荐使用(如果字符中是空的,也是true)
System.out.println(StringUtils.isBlank(" "));//true
//字符中包含空格,它认为该字符串不为空
System.out.println(StringUtils.isEmpty(" "));//false
2、使用String内置的StringUtils(过期)
//false(同样认为不为空,而且提示该方法已经过期了,所以不推荐使用)
System.out.println(org.springframework.util.StringUtils.isEmpty(" "));
3、使用Common.lang下的StringUtils
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
//false(同样认为不为空,所以不推荐使用)
System.out.println(org.apache.commons.lang.StringUtils.isEmpty(" "));
总结:推荐使用common.lang3