簡體   English   中英

盡管檢查了null,但為什么源代碼分析器聲稱NullPointerException可能會被拋出

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM