Bonsoir
est ce qu'on peut appeler une fonction récursivement de la sorte:
Merci pour votre aidee...Code:
1
2
3
4
5
6
7 public void Fonc (Object obj)[ { if () { fonc(obj1); } }
Version imprimable
Bonsoir
est ce qu'on peut appeler une fonction récursivement de la sorte:
Merci pour votre aidee...Code:
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:
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:
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