为了账号安全,请及时绑定邮箱和手机立即绑定

静态方法仅识别一个对象,而不识别其他对象

静态方法仅识别一个对象,而不识别其他对象

交互式爱情 2022-09-14 10:20:16
我一直在研究这个程序,最近使用静态方法遇到了一个错误。我通常不使用静态方法,但它们在需求中。所以我有一个静态方法 验证用户名和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 ");


}


查看完整回答
反对 回复 2022-09-14
  • 1 回答
  • 0 关注
  • 44 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信