Hallo
ich habe hier ein kleines Problem mit einer Konsistenzbeziehung:
// Klasse 1
public boolean hinzufuegen(Typ1 typ) {
liste.add(typ);
typ.hinzufuegen(this);
}
// Klasse 2
public boolean hinzufuegen(Typ2 typ) {
liste.add(typ)
// typ.hinzufuegen(this);
}
Wie man sieht habe ich die letzte Zeile schon auskommentiert, da ich so einen deadlock erzeugen würde. Wie kann ich das möglichst einfach realisieren?
Ich habe bereits an ein Flag gedacht, das vor dem Aufruf gesetzt wird und der Klasse mitteilt ob der Aufruf extern (vom anderen Typ) oder intern (vom eigenen Typ) kommt. Nur sollte das doch auch eleganter gehen? Kann ich sowas wie object.caller() machen? Danke.
EDIT: Code richtig gestellt.
ich habe hier ein kleines Problem mit einer Konsistenzbeziehung:
// Klasse 1
public boolean hinzufuegen(Typ1 typ) {
liste.add(typ);
typ.hinzufuegen(this);
}
// Klasse 2
public boolean hinzufuegen(Typ2 typ) {
liste.add(typ)
// typ.hinzufuegen(this);
}
Wie man sieht habe ich die letzte Zeile schon auskommentiert, da ich so einen deadlock erzeugen würde. Wie kann ich das möglichst einfach realisieren?
Ich habe bereits an ein Flag gedacht, das vor dem Aufruf gesetzt wird und der Klasse mitteilt ob der Aufruf extern (vom anderen Typ) oder intern (vom eigenen Typ) kommt. Nur sollte das doch auch eleganter gehen? Kann ich sowas wie object.caller() machen? Danke.
EDIT: Code richtig gestellt.
Zuletzt bearbeitet: