我正在用Java创建一个注册/登录应用程序,并且正在使用一个if语句进行登录。尽管if语句为true,它仍然执行else块。我在这里做错了什么?任何帮助将不胜感激。
我尝试打印出“ ==”参数的两面,以确保它们相等并且事实证明它们是相等的。我不明白为什么它会进入else-block。
btnLogIn = new JButton("Log In");
btnLogIn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String test = emailBox.getText();
if (map.get(test) == passBox.getText()) {
JOptionPane.showMessageDialog(null, "Log In Successful" , "SMAIL", JOptionPane.PLAIN_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, "Incorrect email or password!" , "SMAIL", JOptionPane.PLAIN_MESSAGE);
}
System.out.println(map.get(test)+ " " +passBox.getText());
}
});
我希望执行if语句,这是因为两个值(map.get(test)和passBox.getText())相等,并且显示了在if-else块之后打印两个值时的情况。但是,它执行了else块。