Mahlzeit,
kann ich bei einer if-Abfrage eine Ausgabe / Objekterzeugung / wasAuchImmer davon abhängig machen, ob eine bestimmte Methode bei einer ArrayList aufgerufen wurde? Mir ist nicht so ganz klar, wie ich das in der if-Abfrage sinnlich und von syntaktisch formulieren müsste.
Also konkret: Die Array List soll über eine Methode entweder erweitert, oder um ein Element einer bestimmten Position verringert werden. Je nach Aktion soll eine andere Push-Nachricht an die Observer gesendet werden.
Mein Code dazu bisher:
kann ich bei einer if-Abfrage eine Ausgabe / Objekterzeugung / wasAuchImmer davon abhängig machen, ob eine bestimmte Methode bei einer ArrayList aufgerufen wurde? Mir ist nicht so ganz klar, wie ich das in der if-Abfrage sinnlich und von syntaktisch formulieren müsste.
Also konkret: Die Array List soll über eine Methode entweder erweitert, oder um ein Element einer bestimmten Position verringert werden. Je nach Aktion soll eine andere Push-Nachricht an die Observer gesendet werden.
Mein Code dazu bisher:
Java:
import java.util.ArrayList;
import java.util.Scanner;
public class Rechnungsliste implements RechnungslisteInterface {
ArrayList <Integer> rechnungsIds = new ArrayList <Integer> ();
ErzeugeId erzeugeId = ErzeugeId.getInstance(); //Die Klasse spare ich hier aus, getNextId erzeugt eine neue Zufallszahl
public void arrayListVerwalten() {
rechnungsIds.add(erzeugeId.getNextId());
rechnungsIds.add(erzeugeId.getNextId());
rechnungsIds.add(erzeugeId.getNextId());
}
//toString ...
//Methoden zur Veränderung d. ArrayList --> beobachtbares Ereignis
public void hinzufuegenNeuerId() {
rechnungsIds.add(erzeugeId.getNextId());
}
public void entfernenBestehenderId() {
System.out.println("Position zu entfernender ID eingeben");
int sc = new java.util.Scanner(System.in).nextInt();
rechnungsIds.remove(sc);
}
package designPattern;
import java.util.ArrayList;
public interface RechnungslisteInterface {
public abstract void hinzufuegenNeuerId(BeobachterInterface beobachter);
public abstract void entfernenBestehenderId(BeobachterInterface beobachter);
public abstract void informiereBeobachter();
}
package designPattern;
public interface BeobachterInterface {
public void sendeBenachrichtung ();
}
package designPattern;
import java.util.ArrayList;
public class Beobachter_1 implements BeobachterInterface {
private ArrayList <Integer> rechnungsliste;
ErzeugeId erzeugeId = ErzeugeId.getInstance();
public Beobachter_1 (ArrayList <Integer> rechnungsliste) {
this.rechnungsliste = rechnungsliste;
}
@Override
public void sendeBenachrichtung() {
int letzterIndex = rechnungsliste.size() - 1;
int letztesElement = rechnungsliste.get(letzterIndex);
/* nach dem Motto
if(methode hinzufuegenNeuerId bei rechnungsliste) {
System.out.println("Neue ID erzeugt: " + letztesElement);
}
if(methode entfernenBestehenderID bei rechnungsliste) {
System.out.println("ID " + int der entfernten Position + " wurde entfernt.")
} */
}
}