Java字符串等于文字警告消息

时间:2017-02-01 15:37:40

标签: java string nullpointerexception

为什么我尝试执行以下操作:(在java

if (reason.equals("time")) { // my code }

IDE向我显示此警告消息:(?)

  

方法调用'reason.equals(“time”)'可能会产生'java.lang.NullPointerException'

我找不到这条警告信息的抽象解释。

2 个答案:

答案 0 :(得分:6)

如果reasonnull,您基本上会null.equals("time")导致NullPointerException。要解决此问题,只需交换两个:"time".equals(reason);

答案 1 :(得分:5)

你的IDE很可爱。如果reasonnull,则您可以获得java.lang.NullPointerException

常见的解决方法是使用java.util.Objects.equals(reason, "time")。该功能将为您执行任何null检查。

虽然,对于这个特殊情况,酷猫,知道文字当然而不是null,将重写为 Yoda Expression

"time".equals(reason)

参考:https://en.wikipedia.org/wiki/Yoda_conditions