Java collection et héritage

Résolu/Fermé
Lisa34 Messages postés 12 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 13 juin 2008 - 28 mai 2008 à 19:19
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 - 28 mai 2008 à 20:01
Bonjour, voilà en ce moment je fais un petit programme en java... et je dois faire une collection d'une collection... et je voulais savoir si ma façon de le faire était bonne...
et aussi j'ai une erreur au niveau de la 2ème partie de code... en effet quand je fais =
"Trekking trekTemp = new Trekking(NoVoy, LibVoy,DateDeb,duree, nbIns, noD, Num_Niveau ,Nb_Km_Jour);"
on me dit ="The constructor Trekking(int, String, String, int, int, int, int, double) is undefined".
Par rapport à la classe trekking celle ci hérite d'une autre classe : Voyage....

Voici le code :

Statement r = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet resultR = r.executeQuery("Select * from Voyage order by NoVoyage");
resultR.beforeFirst();
while (resultR.next()){
vectTrekkingTemp = new Vector <Trekking>();
int NoVoy = resultR.getInt(1);
String LibVoy = resultR.getString(2);
String DateDeb = resultR.getString(3);
int duree = resultR.getInt(3);
int nbIns = resultR.getInt(4);
int noD = resultR.getInt(5);
Statement reqT = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet resultT = reqT.executeQuery("Select Trekking.Num_Niveau, Trekking.Nb_Km_Jour from Trekking where Trekking.NoVoyage=" +NoVoy);
resultT.beforeFirst();
while (resultT.next()){
int Num_Niveau = resultT.getInt(1);
double Nb_Km_Jour = resultT.getInt(2);
Trekking trekTemp = new Trekking(NoVoy, LibVoy,DateDeb,duree, nbIns, noD, Num_Niveau ,Nb_Km_Jour);<-- c'est ici qu'on me dit que le constructeur n'est pas défini....
vectTrekkingTemp.addElement(trekTemp);
}
}

merci d'avance pour votre aide...
Lisa34
A voir également:

7 réponses

arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
28 mai 2008 à 19:26
Bonsoir,

Pour ne pas être méchant tout est dit dans le seul message :

The constructor Trekking(int, String, String, int, int, int, int, double) is undefined

Vérifie donc dans la classe Trekking que ton constructeur appelé existe bien sinon il te faut le rajouter.
0
Lisa34 Messages postés 12 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 13 juin 2008 2
28 mai 2008 à 19:28
Merci de ta réponse, mais le constructeur de ma classe Trekking existe (j'avais oublié de le précisé !!)
Lisa34
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
28 mai 2008 à 19:29
Non non je peux t'assurer que le message d'erreur ne te serait pas donné.
0
Lisa34 Messages postés 12 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 13 juin 2008 2
28 mai 2008 à 19:40
je viens de re-vérifier mon code.... dans ma classe Trekking il y a a bien un constructeur qui hérite de la classe Voyage, ou c'est une erreur que j'ai fais dans mon constructeur?

public Trekking(int NoV, String LibV, String DateDeb, int Dur, int NbI, int NoDest, int Num_Niv, int NbKm){
super(NoV, LibV, DateDeb, Dur, NbI, NoDest);
this.Num_Niveau=Num_Niv;
this.nb_km_jour= NbKm;
}
0

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

Posez votre question
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
28 mai 2008 à 19:47
J'ai compris l'erreur, et cela vient de ton code :

tu déclares donc un constructeur en int,string,string, int, int, int, int, int.

Or lorsque tu crée ton objet Trekking :

Trekking trekTemp = new Trekking(NoVoy, LibVoy,DateDeb,duree, nbIns, noD, Num_Niveau ,Nb_Km_Jour);

A mon avis le problème viens de ta dernière variable, Nb_Km_Jour, qui est trop grande pour ne tenir que dans un entier.

Essaie plutôt de mettre en constructeur celui-là :

public Trekking(int NoV, String LibV, String DateDeb, int Dur, int NbI, int NoDest, int Num_Niv, double NbKm){
super(NoV, LibV, DateDeb, Dur, NbI, NoDest);
this.Num_Niveau=Num_Niv;
this.nb_km_jour= NbKm;
}
0
Lisa34 Messages postés 12 Date d'inscription mercredi 28 mai 2008 Statut Membre Dernière intervention 13 juin 2008 2
28 mai 2008 à 20:01
merci de ton aide !!!!! ça marche !!!! l'erreur venait bien de là!!!
Lisa34
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
28 mai 2008 à 20:01
De rien ! :)
0