myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Java: StackOverflowError

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 28.06.10, 15:37   #1
Aranval
Anfänger
 
Registriert seit: Jun 2010
Beiträge: 10
Bedankt: 0
Aranval ist noch neu hier! | 0 Respekt Punkte
Standard Java: StackOverflowError

Hallo,
bei meinem momentanen Java Projekt bin ich auf diese Fehlermeldung gestoßen und werde sie nicht mehr los. Die gesamte Fehlermeldung sieht so aus:
Zitat:
Exception in thread "main" java.lang.StackOverflowError
at Bezirk0.<init>(Bezirk0.java:52)
at Bezirk3.<init>(Bezirk3.java:8)
at Bezirk0.<init>(Bezirk0.java:14)
at Bezirk3.<init>(Bezirk3.java:8)
....
Wobei die letzten beiden Fehlermeldungen sich wiederholen. Die ganze Fehlermeldung ist ca 1025 Zeilen lang und ich schätze mal, sie ist nur nicht länger, weil sonst die Begrenzung der Anzeige überschritten wird oder so.

Zu den einzelnen Zeilen, die die Fehlermeldung verursachen:
Bezirk0 Zeile 52:
Zitat:
{
ja, eine Klammer.. sie gehört zu:
Zitat:
public Bezirk0()
{
...
}
Bezirk0 Zeile 14
Zitat:
Bezirk3 Bezirk3 = new Bezirk3();
Dazu ist es vielleicht nützlich zu wissen, dass es ingesamt 7 Bezirks-Klassen gibt, die alle gleich aufgebaut sind nur eben verschieden viel Inhalt beherbergen. Jeder Bezirk hat 2 oder 3 andere Bezirke als Attribut zugewiesen bekommen, um auf sie zugreifen zu können.
Die einzigen Informationen, die ausgetauscht werden sind "Räume" in Form von:
Ort Raum1;
Raum1 = new Ort();

usw...


Der letzte Fehler befindet sich in der Klasse Bezirk3 Zeile 8:
Zitat:
Bezirk0 Bezirk0 = new Bezirk0();
Interessanterweiße handelt es sich hier um Bezirk0, der ja von sich aus auch schon Probleme macht. Ich frage mich nur, warum die anderen Bezirks-Klassen keine Fehler melden obwohl Bezirk4 ebenfalls mit Bezirk0 "verbunden" ist und dazu auch noch mit Bezirk3. Bezirk2 ist mit Bezirk3 und 4 verbunden.

Ja, meine JavaKenntnisse sind sehr schwach, aber bei dieser Fehlermeldung blicke ich überhaupt nicht mehr durch.
Schon mal vielen dank im vorraus für alle posts

MfG
Aranval
Aranval ist offline   Mit Zitat antworten
Ungelesen 28.06.10, 15:53   #2
Aranval
Anfänger
 
Registriert seit: Jun 2010
Beiträge: 10
Bedankt: 0
Aranval ist noch neu hier! | 0 Respekt Punkte
Standard

Okay, ein Freund hat mir gerade weiter geholfen.
Der Fehler liegt darin, dass sich die Bezirke immer wieder ineinander gegenseitig erstellen. Das das nicht gut gehen ist mir dann auch klar...

Aber wie kriege ich es hin, dass die einzelnen Klassen ohne Beschränkung aufeinander zugreifen können, ohne, dass ich sie sich gegenseitig als Attribut erstellen lasse?
Sie sind alle in einem Ordner, aber wenn ich die Attribute wegmache kommt diese typische "non-static geht nicht bei static"- Fehlermeldung.
Aranval ist offline   Mit Zitat antworten
Ungelesen 28.06.10, 15:58   #3
MOEP_BIBER
Anfänger
 
Benutzerbild von MOEP_BIBER
 
Registriert seit: Feb 2010
Beiträge: 31
Bedankt: 10
MOEP_BIBER ist noch neu hier! | 0 Respekt Punkte
Standard

probiers mal mit:
Bezirk0 bezirk0 = new Bezirk0();
MOEP_BIBER ist offline   Mit Zitat antworten
Ungelesen 28.06.10, 18:01   #4
Afro
Anfänger
 
Registriert seit: Apr 2010
Beiträge: 10
Bedankt: 0
Afro ist noch neu hier! | 0 Respekt Punkte
Standard

@MOEP_BIBER
Bezirk0 Bezirk0 = new Bezirk0(); ist zwar ein sehr unschöner Stil aber glaube syntaktisch und semantisch korrekt.

Ansonsten sind zwar wenige informationen zu deinem Problem aber ich glaube folgendes könte vielleicht helfen.

public interface BezirkIF{
}

public class Bezirk0 implements BezirkIF {
Arraylist<BezirkIF> others = new Arraylist<BezirkIF>()
public Bezirk0() {
...
}

public void add(BezirkIF bezirk){
others.add(bezirk);
}

public static void main(String[] args) {
Bezirk0 bezirk0 = new Bezirk0();
Bezirk1 bezirk1 = new Bezirk1();
Bezirk2 bezirk2 = new Bezirk2();
bezirk0.add(bezirk1);
bezirk1.add(bezirk2);
bezirk2.add(bezirk0);
}
}
Afro ist offline   Mit Zitat antworten
Ungelesen 28.06.10, 18:57   #5
Aranval
Anfänger
 
Registriert seit: Jun 2010
Beiträge: 10
Bedankt: 0
Aranval ist noch neu hier! | 0 Respekt Punkte
Standard

Okay...ich würd es gern mal probieren...
Muss ich dafür eine neue Klasse erstellen? Und kommt dann der ganze Code in die neue Klasse oder nur ein Teil?
Aranval ist offline   Mit Zitat antworten
Ungelesen 28.06.10, 19:48   #6
Afro
Anfänger
 
Registriert seit: Apr 2010
Beiträge: 10
Bedankt: 0
Afro ist noch neu hier! | 0 Respekt Punkte
Standard

Naja ich wei sja nicht was du alles hast aber nach dem was ich so rausgehört habe müsstest du deine Klassen eher dementsprechend erweitern.
Was meinen Code angeht war das eher ein Wink in eine mögliche Richtung, ob das deinem Problem entspricht musst du entscheiden.
Afro ist offline   Mit Zitat antworten
Ungelesen 02.07.10, 07:33   #7
energy47
Anfänger
 
Registriert seit: May 2010
Beiträge: 1
Bedankt: 0
energy47 ist noch neu hier! | 0 Respekt Punkte
Standard

wenn deine bezirk klassen alle gleich aufgebaut sind, warum schreibst du dann nicht einfach eine klasse bezirk und erstellst von ihr objekte.. die bezirke könnten dann über getter und setter wie du es brauchst gegenseitig auf sich zu greiffen.
Code:
public class Bezirk
{
      private int test;

      public void setTest(int i)
      {
          test = i;
      }
      public int getTest()
      {
         return test;
      }
}

public class BezirkDemo
{
     public static void main (String[] args)
     {
         Bezirk bezirk1 = new Bezirk();
         Bezirk bezirk2 = new Bezirk();
         Bezirk bezirk3 = new Bezirk();
         Bezirk bezirk4 = new Bezirk();
         Bezirk bezirk5 = new Bezirk();
         Bezirk bezirk6 = new Bezirk();
         Bezirk bezirk7 = new Bezirk();

         bezirk1.setTest(42);
         bezirk2.setTest(bezirk1.getTest());
     }
}
nach diesem prinzip können die objekte mit einander interagieren..
was soll dein programm eigentlich machen? welche aufgabe erfüllt es?

vielleicht kann man dir dann besser helfen
energy47 ist offline   Mit Zitat antworten
Ungelesen 02.07.10, 07:57   #8
Aranval
Anfänger
 
Registriert seit: Jun 2010
Beiträge: 10
Bedankt: 0
Aranval ist noch neu hier! | 0 Respekt Punkte
Standard

Naja Abgabe für das Projekt war heute und ich hatte es jetzt anders gelöst. Wie es eben ihm Rahmen meiner bescheidenen Fähigkeiten möglich war.
Ich hab jetzt einfach die 105 Attribute die ich brauche in einer Klasse erstellt. War zwar umständlich, aber ich wollte es ja unbedingt so machen.
Hätte ich mehr Zeit gehabt, hätte ich mich vielleicht mit einer anderen Variante beschäftigt.

Trotzdem danke an alle Helfer =)
ich weiß jetzt wenigstens, was ich das nächste Mal probieren kann
Aranval ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 Uhr.


Sitemap

().