我尝试了很多方法来解决这个问题,但我没有运气。我听说你通过生成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。
答案 0 :(得分:0)
此处inputData.next()
可能会返回null
所以在这种情况下它会抛出NullPointerException
我的建议总是使用CONSTANT.equals(str)
。通过使用这种方式,如果str
为null,则将检查equals方法,并且您的代码不会抛出NullPointerException
所以请将您的代码更改为 - &gt; "Admin".equals(MenuOption)
- &gt;这将解决您的问题。