Pergunta

O mecanismo faz db4o uso de objetos instanciar armazenados?

A minha classe não é Serializable e não fornece construtor argumento zero e o único construtor lança NullPointerException quando é argumento é nulo.

Apesar disso, db4o ainda pode instanciar objetos dessa classe armazenada (embora com valores incorretos).

Se eu posso entender o mecanismo talvez eu possa rastrear o erro que eu tenho.

Eu aprecio quaisquer links:]

Foi útil?

Solução

db4o é open source de modo que você pode dar uma olhada na fonte. A idéia básica é o uso de digite manipuladores que permitem serialização e desserialização de objetos. Há um provedor exemplo simples para usuários avançados que exigem uma manipulador de tipo personalizado. construção Objeto pode usar construtores ou construtor de bypass se nenhuma existe construtor apropriado. O bug construtor mencionado pode ser evitado usando as definições de configuração que instrui DB4O chamar construtores de qualquer maneira.

Você pode querer colocar esta pergunta em db4o fóruns para obter um mais detalhado explicação dos desenvolvedores.

Goran

Outras dicas

Ele usa sol (ou de seu outro JVM) api especial para objetos instanciar sem verificar o acesso e funcionando construtores.

O bug que você está tendo é mais provável devido ao fato de que há construtores foram executados, incluindo os implícitos que estabelecem valores padrão nos campos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top