2016-03-21 42 views
-1

嗨,大家好,我正尝试使用我的帐号登录到一个数组列表,我无法将用户输入与帐号相匹配。我的代码如下:如何用账号登录-Just

登录方法,主类

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 
     } 

} 

嗨,大家好,我想要做的就是让主类中的用户输入能够匹配来自'GetMethod'的AccountNumber,我相信它存储在'Bank'类的araylist中。如果它匹配帐号,则其他方法在if语句中起作用。现在,当我输入AccountNumber时,它会转到else语句并显示“Invalid AccountNumber”。如果这没有意义,我很抱歉。

+0

帐户帐户=新帐户();不要使用类名来标识对象。 – TheMirrox

+0

或者只是使用适当的java命名标准.. –

回答

1

从你的代码,我认为你是保存在其他地方的用户帐号。

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

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

解决方案:您没有在这里发布您的客户类。但是你必须在你的客户类中有一个account_number变量。你可以为账号设置一个getter。银行里面有你的客户名单。您将需要通过每个客户迭代并配合银行类内部的customers.Your循环的帐号输入帐号看起来是这样的:

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

这不是一个可扩展的解决方案。您可以为客户设置一个散列表,将客户编号作为关键字和值作为该客户的客户类实例。

希望这可以解决您的问题。

+1

帮助很多,谢谢你! – John

相关问题