Ich habe eine Klasse CardFile, die unter anderem enthält:
- eine ArrayList "cards" mit Objekten der Klasse FileCard.
- eine Instanzvariable int currentCardIndex (welche Karte wird aktuell angezeigt und kann bearbeitet werden)
- Methoden zum Blättern nextCard() und previousCard(), die den currentCardIndex ändern
- Methoden die auf cards.get(currentCardIndex) zugreifen (löschen, ändern etc.)
Probleme gibt es logischerweise, wenn die ArrayList "card" leer ist.
Ich frage mich, wie man das am elegantesten abfängt.
Habe mir da folgendes überlegt:
In allen problematische Methoden cards.isEmpty() abfragen und in dem Fall
- bei Methoden ohne Rückgabewert nichts machen
- bei Methoden die ein Objekt zurückgeben sollen null zurückgeben
Wenn eine FileCard gelöscht wird ändert sich derzeit nichts am currentCardIndex, was bedeutet, daß die nächste FileCard zur Anzeige und Bearbeitung ausgewählt wird. Wenn die ArrayList nur noch eine FIleCard enthält und diese gelöscht wird ist daher currentCardIndex weiterhin = 0, obwohl ja gar keine FileCard mehr existiert, nicht schön.
Man könnte ja auch sagen, dass wenn das ListArray leer ist soll currentCardIndex = -1 sein. Das ließe sich erreichen, indem nach JEDEM löschen eines Elementes
durchgeführt wird.
In dem Fall könnte man in den problematischen Methoden statt cards.isEmpty() eben currentCardIndex == -1 abfragen.
Wäre dies eine einigermaßen elegante Methode oder ist der ganze Entwurf Murks?
Ich hoffe daß die Frage nicht zu schwammig geraten ist!
- eine ArrayList "cards" mit Objekten der Klasse FileCard.
- eine Instanzvariable int currentCardIndex (welche Karte wird aktuell angezeigt und kann bearbeitet werden)
- Methoden zum Blättern nextCard() und previousCard(), die den currentCardIndex ändern
- Methoden die auf cards.get(currentCardIndex) zugreifen (löschen, ändern etc.)
Probleme gibt es logischerweise, wenn die ArrayList "card" leer ist.
Ich frage mich, wie man das am elegantesten abfängt.
Habe mir da folgendes überlegt:
In allen problematische Methoden cards.isEmpty() abfragen und in dem Fall
- bei Methoden ohne Rückgabewert nichts machen
- bei Methoden die ein Objekt zurückgeben sollen null zurückgeben
Wenn eine FileCard gelöscht wird ändert sich derzeit nichts am currentCardIndex, was bedeutet, daß die nächste FileCard zur Anzeige und Bearbeitung ausgewählt wird. Wenn die ArrayList nur noch eine FIleCard enthält und diese gelöscht wird ist daher currentCardIndex weiterhin = 0, obwohl ja gar keine FileCard mehr existiert, nicht schön.
Man könnte ja auch sagen, dass wenn das ListArray leer ist soll currentCardIndex = -1 sein. Das ließe sich erreichen, indem nach JEDEM löschen eines Elementes
Java:
if(cards.isEmpty){
currentCardIndex = -1;
}
In dem Fall könnte man in den problematischen Methoden statt cards.isEmpty() eben currentCardIndex == -1 abfragen.
Wäre dies eine einigermaßen elegante Methode oder ist der ganze Entwurf Murks?
Ich hoffe daß die Frage nicht zu schwammig geraten ist!
Zuletzt bearbeitet: