为什么当我试图做到以下几点:(在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