Schönheitsfehler in meinem Stapelverarbeitungsprogramm

Dyed

Mitglied
Hallo Liebe Gemeinde,
ich habe mir ein Stapelverarbeitungsprogramm geschrieben, wobei jetzt bei der Ausgabe jedes mal eine null davor gehangen wird, was ich ja nicht will.
Ich hab jetzt schon eine drei viertel Stunde damit verbracht dieses doofe null weg zubekommen, jedoch ohne Erfolg.
Um eine weitere Methode, nämlich die Löschen Methode, zu programmieren muss das null unbedingt weg, denn ich befürchte dann Einschränkungen in der Funktionalität.
Hier nun der Code

Java:
public void setInhalt(String inhalt) {
		
		this.inhalt += inhalt + ", ";
	}

Java:
void add(String text) {

		if(this.inhalt == null)
		{
			
				this.setInhalt(text);
		}
		else
		{
			//wenn kein Nachfolger exestiert, dann wird ein neuer erstellt und mit .add(text) den inhalt zugewießen
			if(nachfolger == null)
			{
				nachfolger = new MyList();
			}
			
			nachfolger.add(text);
		}
	
		this.setIndex(1);
	}

Java:
public String toString() {

		String back = "";

		if (inhalt != null) {
			
			back += inhalt;
			System.out.println("Fall1: Inhalt != null ");
		}

		if (nachfolger != null) {
		
			System.out.println("Fall2: Nachfolger != null ");
			back += nachfolger.toString();

		}

		return  back ;
	}

Ausgabe: nullblub, nullstring, nulltest1, nulltest2, nullgeist, nullfifa, nulltest3,
 

Dyed

Mitglied
Hm wirklich? Kann es sein, dass der Fehler in deiner MyList liegt?!

Jaa folgender Fehler kommt dann:
Code:
Exception in thread "main" java.lang.StackOverflowError
	at MyList.add(MyList.java:65)

Ich weiß es nicht, ich schaue mir das Programm an und sehe immer nur das selbe.
Vllt sollte ich in Zukunft mehr Kommentare schreiben....
Hier mal der gesamte Code, vllt findest du ja was

Java:
/**
 * Klasse für Liste
 * 
 * @version 1.0 vom 6.03.2012
 * @author Edgart Keil
 */

public class MyList {
	private MyList nachfolger;
	private String inhalt = "";
	private int index;

	public MyList() {
		nachfolger = null;
		
	}

	// Methoden

	public String getInhalt() {
		return inhalt;
	}

	public void setInhalt(String inhalt) {
		
		this.inhalt += inhalt + ", ";
	}

	public int getIndex() {
		return index;
	}

	public void setIndex(int index) {
		this.index += 1;
	}
	
	boolean hatInhalt() {
		if (inhalt == null)
		{
			return false;
		} else 
		{
			return true;
		}
	}
	/**
	 * 
	 * @return True oder False, je nachdem ob es funktioniert hat oder nicht
	 */
	void add(String text) {

		if(!hatInhalt())
		{
			
				this.setInhalt(text);
		}
		else
		{
			//wenn kein Nachfolger exestiert, dann wird ein neuer erstellt und mit .add(text) den inhalt zugewießen
			if(nachfolger == null)
			{
				nachfolger = new MyList();
			}
			
			nachfolger.add(text);
		}
	
		this.setIndex(1);
	}
	
	

	public String toString() {

		String back = "";

		if (inhalt != null) {
			
			back += inhalt;
			System.out.println("Fall1: Inhalt != null ");
		}

		if (nachfolger != null) {
		
			System.out.println("Fall2: Nachfolger != null ");
			back += nachfolger.toString();

		}

		return  back ;
	}

}
 
B

BOBOHelp

Gast
Hallo,

da du den inhalt mit "" initializierst, ist es nie null. Es reicht wenn du deine Methode hatInhalt wie folgt umschreibst:
Java:
 boolean hatInhalt() {
        return !inhalt.isEmpty();
  
 }
 
G

Gast2

Gast
Und ein String der Länge 0 ist wohl auch immer leer ;)
Ich würde mal die kühne Behauptung aufstellen dass die beiden Aussagen synonym sind. Nur weil im Quellcode die länge verglichen wird muss die andere Aussage nicht falsch sein ;)
 
B

BOBOHelp

Gast
da muss man „irgendjemand“ die Frage stellen, was „is empty“ bedeutet!

@irgendjemand
also solche Bemerkungen, Beiträge kann man sich sparen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Frage zu Schönheitsfehler bei RXTX Allgemeine Java-Themen 2
Y Wie kann ich ein erstelltes JPanel meinem Frame hinzufügen? Allgemeine Java-Themen 1
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
Drachenbauer Wie finde ich den Aufrufer zu einer Methode, die sich nicht in meinem Projekt befindet? Allgemeine Java-Themen 2
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
A Frage zu meinem Code Allgemeine Java-Themen 2
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
X Probleme mit meinem Properties Allgemeine Java-Themen 9
hdi Was frisst in meinem Programm den Speicher / verschlechtert die Performance Allgemeine Java-Themen 11
Developer_X Brauche Hilfe bei meinem kleinen hilfsprogramm Allgemeine Java-Themen 4
Airwolf89 Wo ist der Fehler in meinem Programm? Allgemeine Java-Themen 4
T File runterladen mit meinem Applet? Allgemeine Java-Themen 4
M JTable verändert Position auf meinem JPanel Allgemeine Java-Themen 3
D Was haltet ihr von meinem Quellcode - JConsole? Allgemeine Java-Themen 2
S Welche Javaversion ist in meinem Linux? Allgemeine Java-Themen 2
G Suche Programm PDF Maker Programm zum einbinden in meinem Allgemeine Java-Themen 8
D close Problem bei meinem eigenen ToolTip Allgemeine Java-Themen 2
E verstehe fehler bei meinem (kleinen) programm nicht Allgemeine Java-Themen 5
V Jar Files Auf meinem Handy Allgemeine Java-Themen 7
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
T Screenshot ohne meinem Programm Allgemeine Java-Themen 5
G Probleme mit Klassenmethoden in meinem Programm. Allgemeine Java-Themen 12
W probleme mit meinem programm Allgemeine Java-Themen 2
G Wie komme ich an den Pfad zu meinem Programm? Allgemeine Java-Themen 2
S meine java laufschrift funzt auf meinem NB teilweise schrott Allgemeine Java-Themen 2
D Löschen-Methode im Stapelverarbeitungsprogramm Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben