這是我的代碼
if (!multipartFile.isEmpty() && multipartFile.getOriginalFilename() != null && !multipartFile.getOriginalFilename().isBlank()) {
String fileName = StringUtils.cleanPath(multipartFile.getOriginalFilename());
dishCreationDto.setImageFileName(fileName);
dishService.saveWithFile(dishCreationDto, multipartFile);
} else {
dishService.save(dishCreationDto);
}
這是我看到該代碼
的方式如您所見,IF 條件的最后一部分帶有下劃線,因為 Idea 認為
getOriginalFilename
可以回傳 null,但我已經用那行代碼檢查了這一點
multipartFile.getOriginalFilename() != null
。我究竟做錯了什么?
uj5u.com熱心網友回復:
想法認為
getOriginalFilename
可以回傳null
因為它可以。
但我已經用那行代碼檢查了這個
multipartFile.getOriginalFilename() != null
您檢查了先前的呼叫沒有回傳
null
。下一個還可以。我究竟做錯了什么?
快速連續呼叫方法兩次,而不是將其結果存盤在變數中并使用該變數進行檢查和進一步處理。事實上,您第三次呼叫它。
(這只是我上面評論的副本)
雖然可能有一些方法可以簡化條件,如另一個答案所示,因為您還需要getOriginalFilename()
內部的結果if
,我認為IDE接下來會抱怨那個,最后您可能不得不咬緊牙關有一個變數:
String originalFilename = multipartFile.getOriginalFilename();
if (!multipartFile.isEmpty() && originalFilename != null && !originalFilename.isBlank()) {
String fileName = StringUtils.cleanPath(originalFilename);
dishCreationDto.setImageFileName(fileName);
dishService.saveWithFile(dishCreationDto, multipartFile);
} else {
dishService.save(dishCreationDto);
}
uj5u.com熱心網友回復:
您可以使用 StringUtils 簡化該運算式:
!StringUtils.isNullOrEmpty(multipartFile.getOriginalFilename())
該實用程式類中還有其他功能可能會有所幫助,具體取決于您要執行的操作。
IntelliJ 并不總是正確的,但總是可以更詳細地查看我們的代碼,以了解可以改進/簡化哪些內容以獲得更好的除錯/可讀性。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/469084.html
下一篇:如何為表單設定漸變背景。智能