Hallo verehrte Java Profis
jetzt war ich so stolz, daß ich eine Aufgabe aus einem Java Kurs so lösen konnte, daß Eclipse nicht andauernd protestiert, aber ein Teil davon funktioniert nicht. Es geht um den Umgang mit generischen Klassen. Hierzu habe ich eine Klasse (ähnlich ArrayList) geschrieben, in der Objekte zu einem Array (private T[] mylist geaddet, werden können. Zudem stellt diese Klasse noch einige weitere Methoden bereit, u.a. eine zum Entfernen eines Objektes aus dem Array. Die Methode kombiliert, aber das Objekt wird nicht gelöscht. Wenn ich also das Array danach komplett ausgeben lasse, stehen die gelöschten Objekte nach vor auf dem jeweiligen Index.
Meine Idee war es, dem zu entfernendem Element einfach eine NULL-Referenz zuzuweisen.
Daß die Methode ein boolean als RÜckgabe haben soll war die Vorgabe aus der Aufgabe. Damit sollte die Löschung bestätigt werden.
Ich denke, das hängt mit der for:each Schleife zusammen, bin mir aber nicht sicher.
Wo liegt der Fehler?
Über Hilfe wäre ich dankbar.
(Im Übrigen, dieses Forum ist super. Hat mir schon sehr oft weitergeholfen. )
public boolean removeElement(T object) {
if (object == null) {
throw new NullPointerException();
}
for (T t : mylist) {
if (t.equals(object)) {
t = null;
System.out.println("Element wurde gelöscht");
}
return true;
}
}
jetzt war ich so stolz, daß ich eine Aufgabe aus einem Java Kurs so lösen konnte, daß Eclipse nicht andauernd protestiert, aber ein Teil davon funktioniert nicht. Es geht um den Umgang mit generischen Klassen. Hierzu habe ich eine Klasse (ähnlich ArrayList) geschrieben, in der Objekte zu einem Array (private T[] mylist geaddet, werden können. Zudem stellt diese Klasse noch einige weitere Methoden bereit, u.a. eine zum Entfernen eines Objektes aus dem Array. Die Methode kombiliert, aber das Objekt wird nicht gelöscht. Wenn ich also das Array danach komplett ausgeben lasse, stehen die gelöschten Objekte nach vor auf dem jeweiligen Index.
Meine Idee war es, dem zu entfernendem Element einfach eine NULL-Referenz zuzuweisen.
Daß die Methode ein boolean als RÜckgabe haben soll war die Vorgabe aus der Aufgabe. Damit sollte die Löschung bestätigt werden.
Ich denke, das hängt mit der for:each Schleife zusammen, bin mir aber nicht sicher.
Wo liegt der Fehler?
Über Hilfe wäre ich dankbar.
(Im Übrigen, dieses Forum ist super. Hat mir schon sehr oft weitergeholfen. )
public boolean removeElement(T object) {
if (object == null) {
throw new NullPointerException();
}
for (T t : mylist) {
if (t.equals(object)) {
t = null;
System.out.println("Element wurde gelöscht");
}
return true;
}
}