Frage von LehrerKopf, 31

[Java] Wie kann ich den Konstruktor einer (noch) unbekannten Klasse aufrufen?

Problem ist folgendes: Ich möchte Objekte speichern, weiß aber nicht zu welcher Klasse sie gehören. Ihnen ist allen die Oberklasse ("Model") gemein, aber die Unterklassen kann ich nicht implementieren. Beim Programm-Neustart möchte ich diese Objekte wiederherstellen.

Idee: In einem 2D-Array stehen Werte für zu erzeugende Objekte z.B. als String - direkt mit Parameter. Kann ich daraus irgendwie wieder einen Konstruktor-Aufruf basteln? Sinngemäß: new arrayMitKlassenNamen[2][3] (Parameter);

Idee2: Kann ich die Objekte serialisieren, obwohl ich ihren Klassentyp nicht kenne? Ich habe keinen Einfluss auf den Code der unterklassen, kann also nicht festlegen, wie sie serialisiert sind. An Information sollte aber Klassenname und Koordinaten reichen, rest wären standardwerte der klasse.

Vielen lieben Dank!!

Antwort
von Gastnr007, 26

guck mal in die Richtung Class.forName(arrayOfNames[i][j]).getConstructor(Integer.class, Integer.class, ...).newInstance(x,y,..);

oder Java Reflect :)

Keine passende Antwort gefunden?

Fragen Sie die Community