Lasst uns sagen, dass wir die folgende Klassenhierarchie haben:Wie erzwingen, dass eine Sammlung von Objekten, Instanzen des gleichen Kindes Klasse
public abstract class Parent {
// body of parent
}
public class ChildA {
// body of child A
}
public class ChildB {
// body of child B
}
Und wir haben eine Sammlung von Objekten des Typs Parent
und eine Art und Weise zu füttern, dass Sammlung:
List<Parent> list;
public void add(Parent newParent) {
list.add(newParents);
}
Wenn wir Hinzufügen von Elementen zu dieser Liste zu starten, wie können wir sicherstellen, dass sie nur Instanzen derselben Klasse sind? Entweder Instanzen von ChildA
oder Instanzen von ChildB
, aber nicht beide.
aufzufüllen Warum nicht zwei Listen haben: eine 'Liste childsA;' und 'Liste childsB; '? Oder mehr auf den Punkt: warum interessiert es Sie, welche konkrete Instanz es ist? –
Tunaki
Weil das ist nicht, wie mein System funktioniert;) Ich brauche eine Liste der Eltern, aber sobald instanziierte Objekte hinzugefügt werden, sind nur diejenigen der gleichen Unterklasse erlaubt. – dabadaba
Kein sehr solides Design für Ihr System. Das dynamische Eingeben einer Sammlung funktioniert nicht wirklich. Sicher können Sie Hacks erstellen, wie das Ersetzen der Sammlung durch eine 'Collections.checkedCollection', nachdem Sie das erste Element eingefügt haben, aber es ist kein gutes Design. – Kayaman