使用springframe的 StringUtils 提示 Warning:() 'isEmpty(java.lang.Object)' is deprecated
isEmpty方法废弃了。
参考:
如下:可能会有隐藏bug:
With static imports code like this looks perfectly fine: List<String> data = ... if (isEmpty(data)) {
But if the import has StringUtils.isEmpty the condition above will not work correctly for empty List introducing a hidden, difficult to spot bug.
If you are really keen on keeping this method it would be better to rename it to isEmptyString to at least make the error more obvious. (I believe this name also matches the method intention better than generic isEmpty.)
But with the #17710 in place I do not think StringUtils.isEmpty(Object) is still needed. And should probably be deprecated and eventually removed.
如上所示,StringUtils.isEmpty()可能会导致一个隐藏bug。
可以使用ObjectUtils.isEmpty(Object) 方法替换StringUtils.isEmpty()就可以。
ObjectUtils.isEmpty 代码如下:兼容了各种场景使用比较方便
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;
}
}
参考: