爲什麼當我試圖做到以下幾點:(在java
)Java字符串等於文字警告信息
if (reason.equals("time")) { // my code }
的IDE顯示我這個警告消息:
方法調用「(?) reason.equals(「time」)'可能產生'java.lang.NullPointerException'
我找不到對此警告消息的抽象解釋。
爲什麼當我試圖做到以下幾點:(在java
)Java字符串等於文字警告信息
if (reason.equals("time")) { // my code }
的IDE顯示我這個警告消息:
方法調用「(?) reason.equals(「time」)'可能產生'java.lang.NullPointerException'
我找不到對此警告消息的抽象解釋。
如果reason
是null
,您基本上有null.equals("time")
,這將導致NullPointerException
。要解決這個問題,只需交換兩個:"time".equals(reason);
這是你的IDE可愛。如果reason
是null
那麼你很可能會得到java.lang.NullPointerException
。
常見的解決方法是使用java.util.Objects.equals(reason, "time")
。該功能將爲您執行任何null
檢查。
雖然,對於這種特殊情況下,酷貓,知道文字是肯定不null
,將改寫爲尤達表達
"time".equals(reason)
這是告訴你,在這個代碼中,'reason'可能是'null';如果是的話,你的程序會拋出異常。 – khelwood
如果你知道'NullPointerException'是那個警告不應該很難理解。因此,我假設你會想要閱讀[什麼是NullPointerException,以及如何解決它?](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do- i-fix-it) – Thomas