Java.lang.StackOverflowError avc eclipse
minoucha-z
Messages postés
3
Statut
Membre
-
arth Messages postés 10414 Date d'inscription Statut Contributeur Dernière intervention -
arth Messages postés 10414 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir j au eu un petit problème dans mon code java , je travaille avec l IDE eclipse et des que je lance l exécution voila l erreur kil m affiche
Exception in thread "main" java.lang.StackOverflowError
at pack3.cellule.<init>(cellule.java:8)
je précise kil s agit d une erreur dans ma classe cellule sur la ligne 8,voila le petit bout de code qui fait erreur :
package pack3;
public class cellule {
private cellule suivante ;
private int contenu;
public cellule()// créer une cellule et initialiser
// son contenu a 0 et son pointeur svt a null
{cellule c =new cellule();
c.suivante=null;
c.contenu=0;
}
je vous remercie d avance
Exception in thread "main" java.lang.StackOverflowError
at pack3.cellule.<init>(cellule.java:8)
je précise kil s agit d une erreur dans ma classe cellule sur la ligne 8,voila le petit bout de code qui fait erreur :
package pack3;
public class cellule {
private cellule suivante ;
private int contenu;
public cellule()// créer une cellule et initialiser
// son contenu a 0 et son pointeur svt a null
{cellule c =new cellule();
c.suivante=null;
c.contenu=0;
}
je vous remercie d avance
A voir également:
- Java.lang.StackOverflowError avc eclipse
- Eclipse java - Télécharger - Langages
- Avc player - Télécharger - Lecture
- Avc free - Télécharger - Conversion & Codecs
- Honeywell eclipse ms5145 configuration français - Forum PC portable
- Configurer un lecteur de code barre USB - Forum Programmation
2 réponses
Euh juste une question pourquoi tu appelles une cellule dans une autre cellule?
parce que je suppose que dans un code extérieur tu fais un cellule pipo = new cellule();
Donc à quoi te sers dans ton constructeur de mettre cellule c =new cellule(); ?
Donc je verrais la classe cellule comme :
Ensuite voit si ton problème se pose toujours.
parce que je suppose que dans un code extérieur tu fais un cellule pipo = new cellule();
Donc à quoi te sers dans ton constructeur de mettre cellule c =new cellule(); ?
Donc je verrais la classe cellule comme :
package pack3;
public class cellule {
private cellule suivante ;
private int contenu;
public cellule()// créer une cellule et initialiser
// son contenu a 0 et son pointeur svt a null
{
suivante=null;
c.contenu=0;
}
Ensuite voit si ton problème se pose toujours.
Tu pourrais donner le code qui accède à ta fonction cellule?
Hormis ça sinon je vois pas ce qui pourrait causer le StackOverFlow, à moins que ton code externe qui appelle la classe cause lui le problème.
PS : Bien vu JeanGilles, en effet je pense que le problème vient de là aussi, je viens d'y penser, on appelle la classe Cellule, qui elle même s'appelle, donc appel à la même classe qui s'appelle à l'infini, c'est sur que le StackOverFlow il est pas loin ...
package pack3;
public class liste extends cellule {
private cellule debut;
private int taille;
public liste ()
{//cree une liste vide
debut=null;
taille=0;
}
public liste (cellule c)//cree 1 liste contenant c en tete
{
this.debut = c;
this.taille++;
}
public boolean isEmpty()
{
return debut==null;
}
public cellule getFirst() {
return this.debut;
}
public void addFirst(int elem)//insere une cellule de elem
{
cellule c= new cellule(elem,this.debut);
this.taille++;
}
je vous remercie
Expose nous plutôt ce que tu veux faire, mais à mon avis je pense ne pas en être loin.