objekte über reflection erzeugen



  • Hallo Leute,

    ich bin gerade dabei eine Art 'Persistenzschicht' für Objekte zu entwickeln.
    Dabei speichere ich mit der Reflection-API Objektwelten ab, und möchte aus den gespeicherten Daten wieder die 'Original-Objektwelt' erzeugen.

    Problem ist, dass die Klassen mancher Objekte keinen Default-Konstruktor oder ähnliches haben können, oder die haben z.B. final Attribute.

    Wenn ich jetzt den Typ (Class) des zu erzeugenden Objekts und alle seine Felder (Field) kenne, und auch alle Objekte bereits erzeugt habe, die das zu erstellende Objekte 'haben' soll, wie kann ich dann das Objekt ohne Default-Konstruktor oder mit final-Attributen erzeugen, um dann dessen Attribute zu setzen?
    Bzw, wie macht es bspw. der ObjectInputStream?

    vielen Dank im Voraus!

    Gruß mathik



  • du brauchst keine informationen zu kennen über die klasse die du haben willst. über Class kannste so ziemlich alles erfragen. felder / methoden / ctoren.



  • DEvent schrieb:

    du brauchst keine informationen zu kennen über die klasse die du haben willst. über Class kannste so ziemlich alles erfragen. felder / methoden / ctoren.

    ja ich weiß, ich will jedoch ein objekt erzeugen ohne es zu initialisieren! ich denke, dass ist etwas, das native durchgeführt werden muss. mit AllocObject().
    http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/functions.html#wp16337

    leider gibt es in java wohl so eine methode nicht direkt, sondern nur in JNI...

    oder kennt da noch jemand was?

    Gruß mathik


Anmelden zum Antworten