ArrayList - JAVA
Résolu
Tsquare
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
-
Tsquare Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
Tsquare Messages postés 25 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- ArrayList - JAVA
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
3 réponses
Essaye peut-être d'utiliser le "instanceof" pour tester si ton objet est bien de type ArrayList.
public class InstanceOfExample { public static java.util.Scanner scanner = new java.util.Scanner(System.in); public static void main(String[] args) { String testeur = "bonjour"; // vérifions si ma variable testeur est un String // testeur est bien de type String if(testeur instanceof String) System.out.println("testeur == String"); else System.out.println("testeur != String"); // vérifions maintenant si ma variable scanner est un String // le scanner est de type Scanner et donc n'est pas un String if(scanner instanceof String) System.out.println("scanner == String"); else System.out.println("scanner != String"); } }
Tsquare
Messages postés
25
Date d'inscription
Statut
Membre
Dernière intervention
Je ne connaissais pas instanceof mais j'ai une petite idée de comment l'utiliser, merci beaucoup (c'est pas la première fois ;) ).
Visiblement le variable 'test' n'est pas du type 'ArrayList'. Par autre, si tu utilise toujours le variable 'test' comme ArrayTest, pourquoi ne le declare-tu comme tel dans la signature de la fonction? Tu n'aurais pas besoin de le "caster" a chaque fois quand tu l'utilise...
import java.util.ArrayList; public class fonction { public static ArrayList aplatir (ArrayList test){ ArrayList resultat_final = new ArrayList(); for (int i = 0; i< test.size();i++) { if ( ((ArrayList) test.get(i)).size()>1) {aplatir( (ArrayList) test).get(i);} else {resultat_final.add(((ArrayList) test).get(i));} } System.out.println(resultat_final); return resultat_final; } }
En déclarant la variable test en ArrayList sa donne ça mais le problème demeure...
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.ArrayList
Tu essaye de convertir un entier (Integer) en une ArrayList
Exemple pour avoir la même erreur :
Si tu ne vois pas ce qui pourrait contenir un entier dans ton code et que tu caste en ArrayList, fait un debug Step by Step ou alors met des points d'arrêts dans ton code pour voir ce que valent tes variables a différents moments de l'éxecution.
Tu essaye de convertir un entier (Integer) en une ArrayList
Exemple pour avoir la même erreur :
import java.util.ArrayList; public class test { public static void main(String[] args) { ArrayList monTest = new ArrayList(); monTest.add(1); System.out.println(monTest); // Jusque ici tout vas bien, normal ! // Si je fait (ArrayList)1 ça ne compilera pas // Donc on va faire passer notre Integer par // Un Object plus générique sur lequel on // Peut appliquer un Cast (ArrayList) Object monObjet = new Integer(4); monTest = (ArrayList)monObjet; // Ca compile, mais erreur à l'execution : /* Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.util.ArrayList at test.main(test.java:11) */ } }
Si tu ne vois pas ce qui pourrait contenir un entier dans ton code et que tu caste en ArrayList, fait un debug Step by Step ou alors met des points d'arrêts dans ton code pour voir ce que valent tes variables a différents moments de l'éxecution.