Bonsoir
est ce qu'on peut appeler une fonction récursivement de la sorte:
Merci pour votre aidee...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void Fonc (Object obj)[ { if () { fonc(obj1); } }
Bonsoir
est ce qu'on peut appeler une fonction récursivement de la sorte:
Merci pour votre aidee...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public void Fonc (Object obj)[ { if () { fonc(obj1); } }
bonjour,
le meilleur moyen pour le savoir est de l'essayer !
Mais la réponse est oui, on peux.
Une fonction est récursive à partir du moment où elle s'appelle elle même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void fonc(int i){ //... fonc(unEntier) //... }
oui oui merci beaucoup pour votre aide..
la j'ai la preuve que l'erreur ne vient pas de la récursivité
voici mon code:
merci de m'aider...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 public static void toString (Object obj) throws ClassNotFoundException, InstantiationException, IllegalAccessException { //Class cl= Class.forName((String) obj); Class cl= obj.getClass(); Field[] champs= cl.getDeclaredFields(); for (int i = 0; i < champs.length; i++) { System.out.println("champ numéro: "+i); if ((champs[i].getClass()).isPrimitive()) { System.out.println("champ: "+champs[i]); } else{ System.out.println("La liste des champ objet du champ " + i+" nomé: "+ champs[i]); toString(champs[i]); // c ici que ma fonction pose problème System.out.println("Fin des champs objets d champs "+ i); } System.out.println("---------------------------------------------------------"); // fin du for } } }
c'est bien beau de faire une fonction récursive, mais il faudrait peut etre penser à faire une condition d'arrêt. La tu va descendre jusqu'à choper un Stack overflow.
Oui ok mais la il n'afficher meme pas les premiers Fields pourquoi ?
Bonjour,
Petit point optimisation, déjà au lieu de rappeler 50 fois "champs[i]" utilise une variable local, tu auras un gain de performance assez important.
Ensuite, es-tu sur de la ligne de code ou cela plante??
Est-ce que cela ne plante pas sur ta ligne :
(les parenthése sur champs[i].getClass() sont inutile si tu ne fais pas de cast ou autre chose)
Sinon tous les champs qui ne sont pas de types primitifs sont-ils des objets personnalisés ??
Y a peut être moyen de surcharger la méthode toString de chaque objet plutôt que de faire appel à une méthode à part.
Ah ben ceux qui ne sont pas type primitf sont des objets tout cours peuvent etre personnalisé ou pas
il te faut une condition d'arrêt dans ton code, hors tu n'en a aucune, donc tu passe en récursion infinie.
ahhhh ok merci beaucoup ca marche très bien merciii
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager