2017-03-23 20 views
1

私は、バイヤークラス 'Buyer.getUser'のメソッドを取得するためにユーザー入力 'username'を比較しようとしています。そして、バイヤークラス 'Buyer.getPass'のメソッドを取得するために 'password'を比較します。
私は、しかし、これはまだ常に正しい入力がで入力された場合でも、unsucessfulでのログインが言う買い手クラスにstaticとしてユーザー名とパスワードを設定します。ユーザー入力をゲッターと比較する

ユーザークラス

switch (credentials) { 
     case 1 : { 
      System.out.println("Buyer"); 
      System.out.println("Enter Username: "); 
      username = S.next(); 
      System.out.println("Enter Password: "); 
      password = S.next(); 

          if ((username.equals(Buyer.getUser())) && (password.equals(Buyer.getPass()))){ 
           System.out.println("Login Successful"); 
          }else{ 
           System.out.println("Login unsucessful"); 
      break; 
     } 
        } 

バイヤークラス

public class Buyer { 

private String username; 
private String password; 


public Buyer (String username, String password){ 
    this.username = username; 
    this.password = password; 
} 

public String getUser(){ 
    return username; 
} 

public String getPass(){ 
    return password; 
} 

ユーザークラス事前に

public static void buyerCredentials() { 
    ArrayList<Buyer> buyer = new ArrayList<Buyer>(); 

    buyer.add(new Buyer("user1", "pass123")); 
    buyer.add(new Buyer("user2", "pass321")); 

    for (int i = 0; i < buyer.size(); i++){ 
     System.out.println(buyer.get(i)); 
    } 
} 

ありがとう!

答えて

0

比較する前に、購入者オブジェクトのインスタンスを作成する必要があります。

Buyer myBuyerInst = new Buyer("MyUser", "MyPass"); 

今、あなたは比較することができます:

username.equals(myBuyerInst.getUser()) 

をあなたのリストを反復処理する必要があります。

for(Buyer b : buyer) { 
    username.equals(b.getUser()) 
} 
+0

私はすでに自分のプログラムの別のクラスでそれを追加しました。すべてのコードが上の質問になりました。 – katemidd

+0

@katemidd私は自分の答えを更新しました – Eknoes

1

は実際にあなたが変数を呼び出すバイヤークラスのオブジェクトとの代わりに、オブジェクトを作成していません静的な参照として、常にあなたはユーザー名とパスワードにnullを取得します。

Buyer buyer = new Buyer(); 
buyer.getUser(); 
buyer.getPass(); 
関連する問題