想必大家在日常开发中会经常遇到以下这种情况:
Map<String, Object> params;
Object res = params.get("xx");
如果value是String类型,我们直接使用res.toString()
,在value不存在的情况下就会造成NPE。
所以我们在使用之前都会先进行判空,
if (null != res && StringUtils.isBlank(str.toString())) {
doSomething();
}
每次都这样写好麻烦哦,今天在看源码的时候发现了一个神奇方法!这个方法既可以判该Object对象是否为null,又能判断是否为空字符串、空数组、空集合。
包名和方法名如下啦!
package org.apache.commons.lang3;
ObjectUtils.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;
}
}
如果大家有更好的方式,希望大家不吝赐教!