为什么我在包含.equals的If语句中收到NullPointerException错误?

时间:2018-04-11 05:01:09

标签: nullpointerexception

我尝试了很多方法来解决这个问题,但我没有运气。我听说你通过生成null.equals(null)得到错误但我在输入之前设置了值。我真的输了,有人可以解释一下吗? 这是我的代码:

public static void main(String[] args) {
       String MenuChoice = "";
       String MenuOption = "nothing";
    System.out.println("Welcome to my Fashion!");
       System.out.println("\n");
       System.out.println("Are You Signing In As An <Employee> Or <Admin>?");
       MenuChoice = inputData.next();
       MenuOption = MenuChoice;

       if(MenuOption.equals("Employee")) {
           Passwords.MainPassword();
       }
      if(MenuOption.equals("Admin"));
      {
          Passwords.AdminPassword();
      }
}

我的代码不重复,因为我涉及字符串,而不是变量。另外,只询问.equals。

1 个答案:

答案 0 :(得分:0)

此处inputData.next()可能会返回null 所以在这种情况下它会抛出NullPointerException

我的建议总是使用CONSTANT.equals(str)。通过使用这种方式,如果str为null,则将检查equals方法,并且您的代码不会抛出NullPointerException

所以请将您的代码更改为 - &gt; "Admin".equals(MenuOption) - &gt;这将解决您的问题。