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

时间:2019-03-30 05:22:13

标签: java

我一直在研究此程序,最近使用静态方法出错。 我通常不使用静态方法,但是在要求中。

因此,我有一个静态方法VerifyUserNameAndPassWord,它输入用户列表以及用户名和密码,并将其与存储在对象中的用户名和密码进行比较,以查看详细信息是否正确。

不幸的是,使用这种方法,它只能识别“ 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 个答案:

答案 0 :(得分:3)

更改您的方法实现。检查整个列表,然后在用户名和密码不匹配时抛出异常。

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 ");

}