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.
Il n'y a pas de problème, il n'y a que des solutions.
Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran
Mes Articles : Mon premier article est sur le language D
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
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
Partager