Java: direkt erstelltes Objekt direkt in eine Liste packen?
Hey.. ich schreibe grade ein Java Programm, wo ich ein Objekt erstelle. Zum Beispiel:
public newObject(String name){ this.name=name; }
Dann gibt es halt logischerweise auch noch ein paar methoden z.B. getname(), aber ich möchte dann direkt eine ArrayList haben, wo jedes neu erstelle Objekt drinne ist, also List objekte = new ArrayList<>(); Woher bekomme ich dann das newObject, dass ich dann in die Liste hinzufügen kann?
lg
2 Antworten
Zunächst einmal muss die ArrayList der Klasse static sein. Danach musst du im Konstruktor das neu erstellte Objekt mit list.add(this) hinzufügen.
Kannst du den Code eventuell auf pastebin.com hochladen und den Link hier kommentieren?
http://hastebin.com/deyawoyuwe.cs
mit
for(Kit all: new KitHandler().getAllKits()) {
System.out.println(all.getName());
}
bekomme ich immer nur die Ausgabe vom zuletzt erstellten Kit.
Du darfst kein neues Objekt in der Schleife erstellen, da die Liste beim Erstellen einer KitHandler Instanz immer wieder neu initialisiert wird. Da sie jedoch so oder so bereits public static ist, kannst du auch ohne getAllKits durch sie iterieren:
for(Kit all : KitHandler.kits) {
System.out.println(all.getName();
}
Hey, ich würde es folgendermassen probieren:
obejecte = objecte.add(new(Object("ich")); /* "Ich" steht für name und ist nur
Beispiel */
So brauchst du auch kein static
Wenn ich aber nun in einer foreach-Schleife alle Objecte durchgehe, bekomme ich nur die Werte vom ersten erstellten Objekt zurückt. Kann mir wer helfen?