今天发现一个问题,用ObjectUtils.isEmpty(file)去判定文件是否空的时候,判断为进去,查看源码发现:
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;
}
}
当没有file字段可以成功判断,当未选择图片时,则失效。
修改如下:
public class FileUtils {
public static Boolean isEmpty(MultipartFile file) {
if (null == file) {
return true;
} else if (file.isEmpty()) {
return true;
} else if (file.getSize() == 0) {
return true;
}else {
return false;
}
}
}
之前还一直用ObjectUtils.isEmpty(),没有深究,果然是大意失荆州啊,还是太粗心了