2009-05-26 16 views
5

Jakiego mechanizmu używa db4o do tworzenia instancji przechowywanych obiektów?W jaki sposób tworzy instancję db4o?

Moja klasa nie podlega Serializacji i nie dostarcza konstruktora zerowego argumentu, a jedyny konstruktor generuje wyjątek NullPointerException, gdy jego argument ma wartość null.

Mimo to db4o może nadal tworzyć instancje obiektów przechowywanych w tej klasie (ale z niepoprawnymi wartościami).

Jeśli rozumiem mechanizm, być może potrafię wyśledzić błąd, który mam.

będę wdzięczny za wszelkie linki:]

Odpowiedz

1

Db4o jest open source, więc możesz rzucić okiem na źródło. Podstawową ideą jest użycie type handlers, które umożliwiają serializację i deserializację obiektów. Istnieje dostawca simple example dla zaawansowanych użytkowników wymagających niestandardowego modułu obsługi typów. Object construction może używać konstruktorów lub ominąć konstruktora, jeśli nie istnieje odpowiedni konstruktor. Wspomnianego błędu konstruktora można zapobiec, używając ustawień konfiguracyjnych, które instruują program db4o do wywoływania konstruktorów.

Możesz zamieścić to pytanie na db4o forums, aby uzyskać bardziej szczegółowe wyjaśnienie od twórców.

Goran

2

Używa słoneczną (lub innej JVM) jest szczególną API do tworzenia wystąpień obiektów bez sprawdzania dostępu i uruchamiania konstruktorów.

Obecny błąd jest najprawdopodobniej spowodowany tym, że nie uruchomiono żadnych konstruktorów, w tym domyślnych, które ustawiają wartości domyślne na polach.

Powiązane problemy