如何使用帐号-Java登录

时间:2016-03-21 20:47:11

标签: java arraylist

大家好,我正在尝试使用存储在arraylist中的帐号进行登录,我无法将用户输入与帐号相匹配。我的代码如下:

登录方法 - 主要类

private void Login (){

    int UserInput; 
    Scanner option = new Scanner (System.in);

    Account Account = new Account();
    ArrayList<Client> customers = bank.getCustomers(); //Gets Customer Info from Bank 
    System.out.println("What is your Account Number?");
    UserInput = option.nextInt();



        if(UserInput==Account.getAccountNumber()){
             Menu();
             int choice = UserInput();
             performAction(choice);
        //system.out.println(i+1 + ")" + customers.get(i).BasicInfo());
        }
        else {
            System.out.println("Invalid Account Number");
          }




    }

ArrayList - 银行类

  public class Bank {

    ArrayList<Client> customers = new ArrayList<Client>(); //Adds customer details in this

        void addCustomer(Client customer) {
        // TODO Auto-generated method stub
        customers.add(customer);//Adds customer from Menu to ArrayList  
    }

        Client getCustomer(int account) {
        // TODO Auto-generated method stub
        return customers.get(account); //Returns Customer detail from ArrayList
    }

        ArrayList <Client> getCustomers (){
            return customers;  //Returns customers
        }

}

大家好我想做的是让主类中的userInput能够匹配'GetMethod'中的AccountNumber我相信它存储在'Bank'类的araylist中。如果它匹配了帐号然后if语句中的其他方法函数。现在当我输入AccountNumber时,它只是转到else语句并显示“Invalid AccountNumber”。如果这没有意义,我道歉。

1 个答案:

答案 0 :(得分:1)

从您的代码中,我认为您正在将用户的帐号保存在其他位置。

您从Account类获得的帐号是可以分配的下一个帐号。当您初始化Account类时,在Account构造函数中,它会增加帐号。该号码从Account.getAccountNumber()返回。

这不可能是现有用户的帐号。

解决方案:您未在此处发布客户类。但是您必须在客户类中包含account_number变量。您可以为帐号设置一个getter。在银行内你有列表客户的。您需要遍历每个客户,并将输入的帐号与这些客户的帐号相匹配。银行类内的循环可能如下所示:

  for(int i=0;i<customers.size();i++){
    if(inputAccountNumber == customers.get(i).getAccountNumber())
    {
      return true;
     }
   }

这不是一个可扩展的解决方案。您可以为客户设置一个哈希映射,其帐号为密钥,值为该客户的客户类实例。

希望这能解决你的问题。