Datentypen List<?>

TheForgotten

Mitglied
Hallo, wie kann ich folgendes umsetzten?
Java:
	private List<?> link;
	
	public Item(boolean parent, String name){
		if(parent) {
			link = new ArrayList<Item>();
		} else {
			link =  new ArrayList<Date>();
		}
		this.name = name;
	}
zur Zeit kann ich zur Liste "link" nichts hinzufügen...

Die Idee dahinter war, dass ich eine Liste haben will und später dann entscheide ob sie vom Typ <Item> oder <Date> ist. Jedoch funktioniert das nicht, wie es soll ...

mfG The-Forgotten
 
G

Gast2

Gast
Warum willst du einmal in der Liste Items drin haben und nen anderes mal Dates ?
Hört sich irgendwie nach nem designfehler an.
Ansonsten kannst du die List auch einfach als List<Object> anlegen, dann kannst du reinlegen was du willst.
 

TheForgotten

Mitglied
Die Idee dahinter ähnelt einem Baum, die "Item"s enthalten den eben vorgestellten Code und stellen quasi Äste dar. Die "Date"s stellen quasi die Blätter da.

Da am Anfang noch nicht klar ist, wie viele Gabelungen der Ast haben soll, will ich x mal (entsprechend der Gabelungen) die Items ineinander verschachteln können und am Schluss ein Date an jedem Ast haben.

also im Prinzip:

Java:
       -------Item-------
       |                |
 ----Item----         Item
 |          |          |
Item      Item        Date
 |          |
Date      Date
 
Zuletzt bearbeitet:
G

Gast2

Gast
Dann sollten Item und Date eine gemeinsame oberklasse oder eine gemeinsames Interface haben.
Schau dir auch mal das Composite Pattern an.
 

TheForgotten

Mitglied
Und inwiefern hilft mir die gemeinsame Oberklasse weiter?

Dann kann ich ja nur Elemente der Oberklasse in der Liste haben, wenn ich eine Liste der Oberklasse erzeuge, oder?

Edit: Habs verstanden^^ Hat sich erledigt, danke für die Hilfe :)
 
Zuletzt bearbeitet:
G

Gast2

Gast
Nein, du kannst dann Objekt der Oberklasse und aller Unterklassen in die Liste legen.
Deswegen kannst du auch in einer List<Object> jedes Objekt reinlegen
 

Neue Themen


Oben