我正在看一些我剛剛繼承並通過源代碼分析器運行的代碼。它指出,我在一個NullPointerException這裏的風險:爲什麼源代碼分析器聲稱NullPointerException可能會拋出,儘管檢查爲空
if(!(strLineData == null) && !(strLineData.isEmpty()))
雖然這顯然是測試一個字符串(!它完成所有的地方)的一個笨方法,爲什麼會一個NullPointerException被拋出?如果strLineData爲空,它不會評估if語句的後半部分,對嗎?
但是,如果strLineData爲空,則「!」使左側虛假。對??? – user1660256
也許這個工具沒有考慮短路? –
嘗試簡化說明,例如'if(strLineData!= null &&!strLineData.isEmpty())'看看你的分析器說什麼。 – radoh