我一直在研究这个程序,最近使用静态方法遇到了一个错误。我通常不使用静态方法,但它们在需求中。所以我有一个静态方法 验证用户名和PassWord 它接受用户列表以及用户名和密码的输入,并将其与存储在对象中的用户名进行比较,以查看详细信息是否正确。不幸的是,使用这种方法,它只能识别“User1”(第一个对象),每当我尝试输入user2的用户名和密码时,它总是抛出我放入的非法参数错误。用户2当然存储在数组列表中。这是我的主要方法:Scanner scanner = new Scanner(System.in); System.out.println("Enter your user name"); String userName = scanner.nextLine(); System.out.println("Enter your password name"); String passWord = scanner.nextLine(); if(User.verifyLoginByUsernameAndPassword(userList, userName, passWord)== true) { do something.. }这是静态方法:public static boolean verifyLoginByUsernameAndPassword(ArrayList<User> user, String username, String password){ boolean check = false; for(User s: user) { if(username.equals(s.getUserName()) && password.equals(s.getPassWord())) { check = true; break; } else { check = false; throw new IllegalArgumentException("Username and password are incorrect "); } } return check;}
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
更改方法实现。检查整个列表,如果用户名和密码不匹配,则引发异常。
public static boolean verifyLoginByUsernameAndPassword(ArrayList<User> user, String username, String password) {
for(User s: user) {
if(username.equals(s.getUserName()) && password.equals(s.getPassWord())) {
return true;
}
}
throw new IllegalArgumentException("Username and password are incorrect ");
}
添加回答
举报
0/150
提交
取消