我正在开发一个项目,并一直在尝试隐含用户名/密码。下面你可以看到代码。每当我单击登录按钮时,用户名都会更改为 bobsyouruncle,这表明它在方法中找到了“true”值。问题是,无论输入如何,它总是如此。这变得更加令人困惑,因为如果我将下面的“返回 true”更改为“返回 false”,那么我仍然会得到 bobsyouruncle。有什么建议吗?
loginButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
Boolean authenticated = AuthenticateCredentials(usernameField.getText(),passwordField.getPassword());
if(authenticated = true){
usernameField.setText("Bobsyouruncle");
} else {
System.exit(0);
}
}
});
下面是访问的方法。
private Boolean AuthenticateCredentials(String user, char[] pass) {
//This is only a placeholder.
String theCorrectAnswer = "42";
String theCorrectUser = "FPrefect";
char[] passcode = theCorrectAnswer.toCharArray();
optionPanel.showInternalMessageDialog(securityPanel,"Eggs are not supposed to be green.");
if (user.equals(theCorrectUser) && Arrays.equals(passcode,pass)) {
return true;
} else {
return false;
}
}
如果有人想告诉我,我已经搞砸了创建安全的用户名和密码以节省我以后的麻烦,那也是花花公子。
最佳答案
您使用=
进行赋值,但这里需要的比较运算符是==
。但是,authenticated
已经是 boolean
,所以只需使用:
if(authenticated){
关于Java用户名和密码总是返回true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095083/