2016-03-21 16 views
-1

arraylistに保存されているアカウント番号を使用してログインしようとしていますので、アカウント番号とユーザー入力を一致させることができません。私のコードは以下のとおりです。アカウント番号 - Javaでログインする方法

ログイン方法 - メイン・クラス

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文に移動して「無効なAccountNumber」が表示されます。これが意味をなさない場合はお詫び申し上げます。

+0

アカウントアカウント=新しいアカウント();オブジェクトを識別するためにクラス名を使用しないでください。 – TheMirrox

+0

または、適切なJava命名標準を使用してください。 –

答えて

1

あなたのコードから、私はあなたが他の場所のユーザーのアカウント番号を保存していると思います。

アカウントクラスから取得するアカウント番号は、割り当て可能な次のアカウント番号です。アカウントクラスを初期化するときに、アカウントコンストラクタ内でアカウント番号が増えます。その番号はAccount.getAccountNumber()から返されます。

これは、既存のユーザーのアカウント番号になることはできません。

解決策:お客様のクラスはここには掲載していません。しかし、顧客クラスの中にaccount_number変数を持たなければなりません。アカウント番号のゲッターを設定することができます。銀行の内部には、顧客のリストがあります。あなたは、このようになります。それぞれの顧客を反復処理し、銀行のクラスの中にあるものcustomers.Yourループの口座番号を入力する口座番号と一致する必要があります。

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

これはスケーラブルなソリューションではありません。アカウント番号をキーとする顧客のハッシュマップを、その顧客の顧客クラスのインスタンスとして設定することができます。

これがあなたの問題を解決することを願っています。

+1

おかげさまで、ありがとうございました!!! – John

関連する問題