Tableau d'objet dans un tableau d'objet
Résolu
jerome38920
Messages postés
17
Statut
Membre
-
jerome38920 Messages postés 17 Statut Membre -
jerome38920 Messages postés 17 Statut Membre -
Bonjour,
Je suis nouveau dans le monde de la programmation, il se peux que je n'utilise pas les bon mot.
Je suis entrain d'apprendre a utiliser un tableau d'objet, lorsque j'utilise un tableau d'objet seul j'arrive a me débrouiller , mais lorsque je j'utilise un tableau d'objet dans un autre tableau d'objet, j'ai un peu de mal. J'ai deux erreur de comptabilité et je pense que sa viens du fais que j'ai mal utiliser les deux type de tableau, mais je ne sais pas comment le résoudre.
Voila un exemple de ce que je fais (j'ai juste mis la partie essentiel où je ne suis pas sur de moi):
Merci de vos réponses
Je suis nouveau dans le monde de la programmation, il se peux que je n'utilise pas les bon mot.
Je suis entrain d'apprendre a utiliser un tableau d'objet, lorsque j'utilise un tableau d'objet seul j'arrive a me débrouiller , mais lorsque je j'utilise un tableau d'objet dans un autre tableau d'objet, j'ai un peu de mal. J'ai deux erreur de comptabilité et je pense que sa viens du fais que j'ai mal utiliser les deux type de tableau, mais je ne sais pas comment le résoudre.
Voila un exemple de ce que je fais (j'ai juste mis la partie essentiel où je ne suis pas sur de moi):
public class GenerateurDeTests { /** * Traite l'option 1 qui consiste a creer un nouveau test. * cette méthode ne fait que rajouter un seul est unique test au tableau de tests mis en paramettre * @param tests le tableau contenant les tests existants, dans lequel le * nouveau test a creer devra etre ajoute. * @param nbrTests le nombre de tests existant dans le tableau tests * @return le tableau tests contenant le nouveau test cree. */ public static Test[] preparerTest(Test[] tests, int nbrTests) { Test []tableauProxi=null; String enonce="il est jaune?"; int point=0; int numBonneRep=0; String []choixRep=null; Test t1 = new Test("jerome"); //init de t1 for(int i =0;i<5;i++){ point=i; numBonneRep=2*i; tableauProxi[i]=t1.ajouterQuestion(new Question(enonce,choixRep, point, numBonneRep)); // incompatible type : void canno be converted to Test } tests[nbrTests]=tableauProxi; //incompatible types: Test[] cannot be converted to Test return tests; } }
Merci de vos réponses
A voir également:
- Tableau d'objet dans un tableau d'objet
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer un tableau excel - Guide
- Tableau croisé dynamique - Guide
1 réponse
Bonjour,
// incompatible type : void canno be converted to Test
Tu ne nous as pas mis le code de la classe
Ce serait uniquement possible si tu avais
//incompatible types: Test[] cannot be converted to Test
Tu ne peux donc pas faire
Éventuellement tu peux faire
Attention,
Attention :
Remarque : sans l'intégralité du code et l'objectif de ton programme, difficile de t'aider davantage, mais je pense qu'il y a beaucoup plus de choses à revoir, par exemple je trouve étonnant que ce soit la classe Test qui créé une Question pour la rajouter dans un tableau externe...
// incompatible type : void canno be converted to Test
Tu ne nous as pas mis le code de la classe
Test, mais vu le message d'erreur tu dois avoir quelque chose comme
public void ajouterQuestion(Question q)avec une méthode de type void (qui ne retourne rien), donc comme la méthode n'a pas de résultat tu peux en aucun cas l'affecter à une variable.
Ce serait uniquement possible si tu avais
public Test ajouterQuestion(Question q)dans ta classe.
//incompatible types: Test[] cannot be converted to Test
testsest un tableau de type
Test[]donc chaque valeur
tests[i]est de type
Test, idem pour
tableauProxi.
Tu ne peux donc pas faire
tests[nbrTests]=tableauProxi;car à gauche tu as un
Testet à droite un
Test[].
Éventuellement tu peux faire
tests[i]=tableauProxi[i];avec des
Testà gauche et à droite, ou
tests=tableauProxi;avec des
Test[]à gauche et à droite.
Attention,
tests=tableauProxi;serait une modification valide à l'intérieur de la méthode, mais le changement de référence de
testsn'aura pas d'impact sur la référence du tableau passé en paramètre.
Attention :
Test []tableauProxi=null;n'est pas une initialisation valide (NullPointerException pour
tableauProxi[i])
Remarque : sans l'intégralité du code et l'objectif de ton programme, difficile de t'aider davantage, mais je pense qu'il y a beaucoup plus de choses à revoir, par exemple je trouve étonnant que ce soit la classe Test qui créé une Question pour la rajouter dans un tableau externe...
puis le code de la classe Question qui est :
Dans ce bout de code, il s'agit de ma méthode complet ou j'ai mon problème(erreur à la ligne 139 et la ligne 145),( je voulais pas le mettre car il est assez grand le code, et il est pas bien fait pour que les autre puissent bien le comprendre).
Le but de cette méthode c'est de pouvoir créer un test avec certaine informations qui sont le nom du test, l’énoncé de la question, les choix de réponses dans un tableau, la bonne réponse de l'énoncé et les points de la question. Il y a la possibilité d'avoir plusieurs questions dans ce test.
Puis de retourner ce test dans un tableau qui possède les tests déja créer.
Par ceci :
Mais ton code est extrêmement dur à lire, une seule méthode qui fait 150 lignes, c'est beaucoup trop, il faut la découper. Par exemple toutes les petites boucles de saisies au clavier qui recommencent tant que la valeur n'est pas bonne tu peux facilement les sortir dans des méthodes à part.
Exemple, cette boucle :
Tu la remplaces par
Avec la méthode suivante qui est quasiment du copier-coller :
Tu en as 5 ou 6 comme ça qui alourdissent inutilement le code.