Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2760 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Problème (simple ??!) d'ArrayList

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Problème (simple ??!) d'ArrayList

n°1523323
The_VeryNo​vice
Posté le 03-03-2007 à 22:15:09  profilanswer
 

Voilà j'ai un problème avec la mise en place d'Arraylist et son parcours
 
Pour simplifier, j'utilise 3 classes (ici amputer de lignes peu "importantes" )  :
- une classe Joueur  
- une classe MockDonnees : où l'on définit un ArrayList listeJoueurs de type Joueur
- une classe Authentification : où l'on fait appel à une méthode Inscription (qui fonctionne) et une méthode Connexion (faisant appel à une méthode de MockDonnées)
 
L'ajout d'un joueur dans l'ArrayList s'effectue parfaitement (j'ai pu le vérifier)
 
Par contre, je galère (et je pense pourtant que c'est simple) pour développer la méthode VerifIdentiteJoueur(login, motpasse).
Elle me retourne toujours false, alors qu'elle devrait retourner vrai
 
J'ai essayé avec les fonctionnalités :
 
-  listeJoueurs.containes(monObjetJoueur) avec monObjetJouer = new Joueur(login, mot de passe) et j'obtient toujours flase
- la  méthodeslisteJoueurs.get(i).getPassword(login)).equals("password" ))  et j'obtiens toujours false
Je ne sais pas comment faire et c'est important pour moi de trouver la solution. Peut être est-je mal utiliser les fonctionnalités détaillés précédemment. Merci beaucoup de m'aider pour que ma méthode VerifIdentiteJoueur fonctionne
 
 
 
Voici mes classes.
 

Code :
  1. public class Joueur extends UnicastRemoteObject implements JoueurInterface {
  2. Score monScore = new Score();
  3. String loginJoueur;
  4. String monPassword;
  5. public Joueur() throws RemoteException {
  6.  super();
  7. }
  8. public Joueur(String login, String pass) throws RemoteException {
  9.  loginJoueur = login;
  10.  monPassword = pass;
  11. }
  12. public String getPassword(String login){
  13.  return this.monPassword;
  14. }
  15. }


 

Code :
  1. public class MockDonnees {
  2. static ArrayList < Joueur > listeJoueurs = new ArrayList < Joueur >();
  3. public MockDonnees() throws RemoteException {
  4. }
  5. public static final void AjoutJoueur(String login, String password) throws RemoteException{
  6.  Joueur monJoueur = new Joueur(login, password);
  7.  listeJoueurs.add(monJoueur);
  8. }
  9. public static final boolean VerifIdentiteJoueur(String login, String password) throws RemoteException{
  10.  boolean trouve=false;
  11.  /* Solution 1 envisagé mais qui ne fonctionne pas  
  12.  Joueur monJoueur = new Joueur(login, password);
  13.  trouve=listeJoueurs.contains(monJoueur);
  14.  */
  15.  /* Solution 2 envisagé mais qui ne fonctionne pas  
  16.  /*for (int i =0 ; i <=  listeJoueurs.size(); i++)
  17.  {
  18.   if ((listeJoueurs.get(i).getPassword(login)).equals("password" )){
  19.    trouve=true;
  20.   }
  21.  }
  22.  */
  23.  return trouve;
  24.  }


 

Code :
  1. public class Authentification extends UnicastRemoteObject implements
  2.  AuthentificationInterface {
  3. public Authentification() throws RemoteException{
  4. }
  5. public void Inscription(String login, String password) throws RemoteException {
  6.  MockDonnees.AjoutJoueur(login, password);
  7. }
  8. public boolean Connexion(String login, String password) throws RemoteException {
  9.  boolean cnnx=MockDonnees.VerifIdentiteJoueur(login, password);
  10.  return cnnx;
  11. }

 

mood
Publicité
Posté le 03-03-2007 à 22:15:09  profilanswer
 

n°1523421
zenzen77
Paske j'le vô bien
Posté le 04-03-2007 à 18:43:37  profilanswer
 

Bon je suis pas sur de mon coup, mais essaye ca... Les foreach c'est meilleur en java...
Sinon j'ai juste enlevé les " " dans le test equals, si le mot de passe enregistré était différent de "password" il te renvoyait toujours false. J'ai supposé qu'il ne peut y avoir qu'un seul Joueur avec un meme nom et meme password, donc j'ai un peu simplifié...
 

Code :
  1. public static final boolean VerifIdentiteJoueur(String login, String password) throws RemoteException{
  2.         for(Joueur item : listeJoueurs){
  3.             if ((item.getPassword(login)).equals(password)){
  4.                 return true;
  5.             }
  6.         }
  7.         return false;
  8. }


 
En gros...

n°1523431
sircam
I Like Trains
Posté le 04-03-2007 à 19:14:14  profilanswer
 

Fais du debugging :spamafote:
 
C'est tu as un IDE, il y a une fonction pour ça. Sinon, ajoute un System.out dans la boucle pour afficher 'login' et 'password' et tenter de découvrir ce qui se passe.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Problème (simple ??!) d'ArrayList

 

Sujets relatifs
[Java - Swing] Pourquoi mon JButton ne s'affiche pas ?problème de compilation sous eclipse
[java] Souligner un String dans la console[Java - Swing] Question simple : positionner l'applet avec setBounds()
[PHP] problème lecture / écriture dans un fichierhorloge java pour un jeu
[sql] probleme requete sql.programme backgammon java
[tomcat]Problème d'url-pattern 
Plus de sujets relatifs à : [Java] Problème (simple ??!) d'ArrayList


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR