Prob de méthode // vecteur

little pepito Messages postés 13 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 9 juin 2007 - 30 mai 2007 à 10:49
little pepito Messages postés 13 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 9 juin 2007 - 30 mai 2007 à 16:09
Voilà, j'ai un petit problème qui me renvoie une erreur "not a statement"
J'ai crée un vecteur v dans une classe "GestionPark", mais quand je veux rajouter un objet dedans à partir d'une autre classe il refuse ma syntaxe.

<!-- BEGIN TEMPLATE: bbcode_code -->

Code :

 
 
try{for(int k = 0,t=0 ; k < 50; k++ , plaque++)
Voiture alpha = new Voiture(plaque);
(GestionPark)v.addElement(alpha);
delay = (int)((Math.random())*20000);
Thread.sleep( delay );
System.out.println("delay = "+delay);

}}catch( InterruptedException e ){
System.out.println("Interrupted Exception caught");
}
 
 

<!-- END TEMPLATE: bbcode_code -->

Quelqu'un pour éclairer ma lanterne?

Merci beaucoup<!-- / message -->

7 réponses

little pepito Messages postés 13 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 9 juin 2007
30 mai 2007 à 10:50
Oups, voilà le code :

 
try{for(int k = 0,t=0 ; k < 50; k++ , plaque++) 
              Voiture alpha = new Voiture(plaque);
              (GestionPark)v.addElement(alpha);
               delay = (int)((Math.random())*20000);      
              Thread.sleep( delay );
              System.out.println("delay = "+delay);
             
              }}catch( InterruptedException e ){
            System.out.println("Interrupted Exception caught");
        }
 

Merci
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
30 mai 2007 à 11:09
Salut,

pourquoi tu fais (GestionPark)v.addElement(alpha) ?
ça na pas vraiment de sens de plus la méthode addElement de retourne rien ...

tu devrais plus faire :
Voiture alpha = new Voiture(plaque);
v.addElement(alpha);

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
little pepito Messages postés 13 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 9 juin 2007
30 mai 2007 à 11:18
BEn en faisant  v.addElement, ça ne marche pas parce que mon vecteur est défini dans une autre classe, du coup il ne reconnait v  :-(
En fait mon problème est surtout un prob de syntaxe, à part dans le cas de méthodes statiques, je ne sais pas trop comment appeler des méthodes etc... définies dans d'autres classe :$
Si jamais tu sais m'éclairer sur ça aussi ne te retiens surtout pas ;-)

Et ce qui m'inquiète encore plus, c'est que même avec un livre de java j'y arrive pas:$

Merci
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
30 mai 2007 à 11:21
Salut,

il te suffit de passer la référence de ton vecteur dans ton autre
 classe soit par le constructeur soir par une méthode de classe (exemple setVector(Vector v))

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
little pepito Messages postés 13 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 9 juin 2007
30 mai 2007 à 11:25
Salut,

Désolé, je ne vois pas trop ce que tu veux dire...tu n'aurais pas un mini exemple par hasard?

Merci :-)
0
Twinuts Messages postés 5373 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 10 août 2022 110
30 mai 2007 à 11:59
Salut,

ouep pas de prob

public class A {
    private Vector vector = ....;

    public Vector getVector() {
       return vector;
    }
}

public class B {
    private Vector vectorDeA = null;

    public B() {
    }

    //solution par le constructeur
    public B (Vector vectorDeA) {
       this.vectorDeA = vectorDeA;
    }

    //solution par un setter
    public void setVectorDeA(Vector vectorDeA) {
       this.vectorDeA = vectorDeA;
    }

    public void methode() {
       if(vectorDeA == null)
          throw new NullPointerException("null vector");
       for(int k = 0,t=0 ; k < 50; k++ , plaque++) 
           Voiture alpha = new Voiture(plaque);
          vectorDeA.addElement(alpha);
          delay = (int)((Math.random())*20000);      
          try{
              Thread.sleep( delay );
          }catch( InterruptedException e ){ }
          System.out.println("delay = "+delay);
        }
        System.out.println("Interrupted Exception caught");
    }
}

public class C {

    .......
    A a = new A();
    B b = new B();
    b.setVectorDeA(a.getVector());
    //ou simplement
    //B b = new B(a.getVector());

    b.methode();
    .....

}

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
little pepito Messages postés 13 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 9 juin 2007
30 mai 2007 à 16:09
Merci Twinuts :-)

Dès que je peux, je teste ça

a+++
0