2009-05-26 22 views
5

¿Qué mecanismo utiliza db4o para crear instancias de objetos almacenados?¿Cómo crea db4o objetos?

Mi clase no es Serializable y no proporciona un constructor de argumento cero y el único constructor arroja NullPointerException cuando su argumento es nulo.

A pesar de eso, db4o todavía puede crear una instancia de objetos almacenados de esa clase (aunque con valores incorrectos).

Si puedo entender el mecanismo quizás pueda rastrear el error que tengo.

que apreciarán los enlaces:]

Respuesta

1

Db4o es de código abierto, por lo que puede echar un vistazo a la fuente. La idea básica es el uso de type handlers que permite la serialización y deserialización de objetos. Hay un proveedor simple example para usuarios avanzados que requieren un controlador de tipo personalizado. Object construction puede usar constructores o eludir el constructor si no existe un constructor adecuado. El error de constructor mencionado puede evitarse mediante la configuración de configuración que ordena a db4o a llamar a los constructores de todos modos.

Puede desear publicar esta pregunta en db4o forums para obtener una explicación más detallada de los desarrolladores.

Goran

2

Utiliza (o el de su otra JVM) api especial del sol para crear instancias de objetos sin comprobar el acceso y funcionamiento de constructores.

El error que está teniendo probablemente se deba a que no se han ejecutado constructores, incluidos los implícitos que configuran los valores predeterminados en los campos.

Cuestiones relacionadas