Salut,
On ne peut pas te répondre sans aucun doute sans savoir ce qu'est questions2 ou sans savoir le code de la classe Question.
Tout ce que je peux dire :
1 2
| Integer facile = null;
facile++; |
Ce code ne te choque pas ? null + 1 ça fait combien ?- Si questions2 est, comme son nom le suggère, une collection de Question, questions2.contains(question.getNiveauDeDifficulte().equals("Facile"))) est forcément faux, parce que ça teste si un booléen est contenu dans cette collection, ce qui est impossible (enfin, pas vraiment, mais je ne pense pas que tu aies contourné le type paramétré pour mettre du Boolean dans cette liste).
Question question=new Question();puis
question.getNiveauDeDifficulte().equals("Facile")C'est plutôt étrange, parce que
- si la question est facile par défaut (par son constructeur par défaut), inutile alors d'en créer une : autant partir directement du principe qu'elle est facile par défaut
- si la question n'est pas facile par défaut, idem : autant partir du principe que le test est faux d'office, sans créer de Question
- si le niveau de la question est aléatoire, elle peut être facile ou pas, par défaut : mais je ne vois pas trop à quoi ça servirait, puisque cette question est ensuite perdue.
Si le but est de compter le nombre de questions faciles contenues dans questions, et que questions2 est bien une collection de Question, on doit faire comme ça :
1 2 3 4 5 6 7
| int nombreDeQuestionsFaciles=0;
for(Question question : questions2) {
if ( "Facile".equals(question.getNIveauDeDifficulte()) ) { // c'est pas terrible de gérer ça par un String. Une enum serait mieux adaptée
nombreDeQuestionsFaciles++;
}
}
test.setNbrQuestionFacile(nombreDeQuestionsFaciles); |
Ou encore, en Java 8 :
test.setNbrQuestionFacile( questions2.stream().filter(question-> "Facile".equals(question.getNIveauDeDifficulte())).count() );
Il y a également un moyen direct de récupérer le nombre par niveau de difficulté :
1 2 3
| Map<String, List<Question>> niveaux = question2.stream().collect(Collectors.Grouping(Question::getNiveauDeDifficulte));
int nbFacile = niveaux.get("Facile").size();
int nbDifficile = niveaux.get("Difficile").size(); // si la valeur est bien "Difficile" |
Mais la question que je me pose surtout, c'est quel rapport entre le titre de ta discussion et la question que tu poses et le code que tu montres ? Et c'est quoi un attribut de JTable pour toi ?
Partager