2009-05-26 11 views
5

Welchen Mechanismus verwendet db4o, um gespeicherte Objekte zu instanziieren?Wie instanziert db4o Objekte?

Meine Klasse ist nicht serialisierbar und stellt keinen Nullargumentkonstruktor zur Verfügung und der einzige Konstruktor löst NullPointerException aus, wenn das Argument null ist.

Trotzdem kann db4o gespeicherte Objekte dieser Klasse noch instanziieren (wenn auch mit falschen Werten).

Wenn ich den Mechanismus vielleicht verstehe, kann ich den Fehler aufspüren, den ich habe.

werde ich alle Links zu schätzen wissen:]

Antwort

1

Db4o ist Open Source, also können Sie sich die Quelle ansehen. Die Grundidee ist die Verwendung von type handlers, die Serialisierung und Deserialisierung von Objekten ermöglichen. Es gibt einen simple example Provider für fortgeschrittene Benutzer, die einen benutzerdefinierten Typ-Handler benötigen. Object construction kann Konstruktoren oder den Umgehungskonstruktor verwenden, wenn kein geeigneter Konstruktor vorhanden ist. Der erwähnte Konstruktor-Fehler kann verhindert werden, indem Konfigurationseinstellungen verwendet werden, die db4o anweisen, Konstruktoren trotzdem aufzurufen.

Sie können diese Frage auf db4o forums stellen, um eine ausführlichere Erklärung von den Entwicklern zu erhalten.

Goran

2

Es nutzt die Sonne (oder Ihren anderen JVMs) besondere api Objekte zu instanziiert ohne Zugang Kontrolle und Konstrukteure läuft.

Der Fehler, den Sie haben, liegt wahrscheinlich an der Tatsache, dass keine Konstruktoren ausgeführt wurden, einschließlich impliziter, die Standardwerte für Felder festlegen.

Verwandte Themen