一、导入的包
import cn.hutool.core.util.ObjectUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
二、ObjectUtil
1.isNotEmpty
isNotEmpty源代码
/**
* 判断指定对象是否为非空,支持:
*
* <pre>
* 1. CharSequence
* 2. Map
* 3. Iterable
* 4. Iterator
* 5. Array
* </pre>
*
* @param obj 被判断的对象
* @return 是否为空,如果类型不支持,返回true
* @since 4.5.7
*/
public static boolean isNotEmpty(Object obj) {
return false == isEmpty(obj);
}
上面这段代码可以看出,obj的类型是Object,由此可以看得出isEmpty返回的值和false 相比较,就是isNotEmpty返回的最终的boolean值。
isEmpty源代码
/**
* 判断指定对象是否为空,支持:
*
* <pre>
* 1. CharSequence
* 2. Map
* 3. Iterable
* 4. Iterator
* 5. Array
* </pre>
*
* @param obj 被判断的对象
* @return 是否为空,如果类型不支持,返回false
* @since 4.5.7
*/
@SuppressWarnings("rawtypes")
public static boolean isEmpty(Object obj) {
if (null == obj) {
return true;
}
if (obj instanceof CharSequence) {
return StrUtil.isEmpty((CharSequence) obj);
} else if (obj instanceof Map) {
return MapUtil.isEmpty((Map) obj);
} else if (obj instanceof Iterable) {
return IterUtil.isEmpty((Iterable) obj);
} else if (obj instanceof Iterator) {
return IterUtil.isEmpty((Iterator) obj);
} else if (ArrayUtil.isArray(obj)) {
return ArrayUtil.isEmpty(obj);
}
return false;
}
这里我们就明白了isNotEmpty。
if (null == obj) {return true;}
如果传入的对象==null返回true
返回到上一个方法return false == true;
最终返回的是false,说明这个对象没有值。
总结:isNotEmpty判断对象有值。可以判断
* 1. Map
* 2. Iterable
* 3. Iterator
* 4. Array
* 5. CharSequence
* 这些类型
isEmpty同道理,判断这个对象是否为空。
2.isNotNull
直接看代码
/**
* 检查对象是否不为null
*
* @param obj 对象
* @return 是否为null
*/
public static boolean isNotNull(Object obj) {
//noinspection ConstantConditions
return null != obj && false == obj.equals(null);
}
如果obj有值
null != obj 返回true
false == obj.equals(null) false
同理,isNotNull返回false
isNull同理。