[英]Why does a source code analyzer claim a NullPointerException could be thrown despite a check for null
我正在查看我剛剛繼承的一些代碼,並通過源代碼分析器運行。 它指出我在這里面臨NullPointerException的風險:
if(!(strLineData == null) && !(strLineData.isEmpty()))
雖然這顯然是一種測試String的愚蠢方式(並且它已經完成了所有地方!),為什么會拋出NullPointerException? 如果strLineData為null,它將不會計算if語句的后半部分,對吧?
你是對的。 似乎該工具可能會被竊聽,因為語言規范提到了這一點:
條件和運算符&&類似於&(§15.22.2),但僅在其左側操作數的值為真時才計算其右側操作數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.