[英]How to avoid null in Java method chain
這是我的代碼片段。
String fileName = "";
FileDTO file =
FileService.findById(fileId);
if(file != null && file.getFileFormate() != null){
fileName = file.getFileName();
fileName = "." +file.getFileFormate().getExtension();
}
在這里我可以看到空指針異常的機會。 如果文件不為空,然后file.getFileFormate() 不為空,那么我可以調用file.getFileFormate().getExtension()。 所以我必須為他們每個人檢查 null 。 是否有任何飛行的方法來檢查它。 就像是:-
file?.getFileFormate()?.getExtension()
JVM 是否也從左到右執行代碼從右到左?
所以我的代碼冷作為檢查:
if(file != null && file.getFileFormate() != null)
or
if(file.getFileFormate() != null && file != null)
or
if(null != file.getFileFormate() && null != file)
由於大概FileDTO
是您編寫的類,您可以簡化對空值的檢查,如下所示:
if(file != null){
fileName = file.getFileName();
fileName = "." +file.getExtension();
}
然后將類似以下內容添加到FileDTO
:
public String getExtension() {
String extension = "";
if (this.getFileFormate() != null) {
extension = this.getFileFormate().getExtension();
}
return extension;
}
這具有不暴露FileDTO
內部實現細節的FileDTO
。
至於你的另一個問題,正如評論已經說過的,它是從左到右的,但有些運營商有一個 order of precedence 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.