为什么isEmpty() not null checked?

Why isEmpty () not null checked?

首先,英语不流利,请谅解。

我目前正在使用 MultipartFile 实现上传功能。如果没有文件,它会使用 isEmpty() 检查空值。未选择文件提交时,isEmpty()部分出现NullPointerException

因此,当我没有文件时,如果我检查 file != null 而不是 isEmpty(),它会正常工作。查看 MultipartFile(例如:CommonsMultipartFile、StandardMultipartFile...)的实现,这仅检查文件大小是否为零。如果是这样,我想知道是否可以像file != null一样检查它来检查null。

if(uploadFile.isEmpty()){ //Here a NullPointerException is thrown
    ...
}

if(uploadFile != null){ //Does not occur here
    ...
}

如果 uploadFile 对象本身为 null 那么这意味着你在 null 上调用 isEmpty() 抛出 NPE

你可以像这样组合条件

uploadFile != null && !uploadFile.isEmpty()