Java collection et héritage [Résolu/Fermé]

Signaler
Messages postés
12
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
13 juin 2008
-
Messages postés
9366
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
-
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

7 réponses

Messages postés
9366
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 281
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.
Messages postés
12
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
13 juin 2008
2
Merci de ta réponse, mais le constructeur de ma classe Trekking existe (j'avais oublié de le précisé !!)
Lisa34
Messages postés
9366
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 281
Non non je peux t'assurer que le message d'erreur ne te serait pas donné.
Messages postés
12
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
13 juin 2008
2
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;
}
Messages postés
9366
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 281
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;
}
Messages postés
12
Date d'inscription
mercredi 28 mai 2008
Statut
Membre
Dernière intervention
13 juin 2008
2
merci de ton aide !!!!! ça marche !!!! l'erreur venait bien de là!!!
Lisa34
Messages postés
9366
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 281
De rien ! :)