Jump to content

Serialização de objectos


ricardoaux
 Share

Recommended Posts

Boas

Gostaria de saber como possível serializar objectos, de forma a que isto não aconteça:

Tenho a classe Estrada e a uma Qualquer.

Faço a serialização, e um objecto da classe Estrada está referenciado na classe Qualquer. Por exemplo a classe qualquer contem uma ArrayList de Estradas.

Serializo cada uma delas separadamente e depois quando faço load o objecto é duplicado.

Ou seja, ficam dois objectos Estrada exactamente iguais mas perco a referencia.

Se alterar um o outro não é alterado.

Desde já agradeço a ajuda

Cumprimentos

Link to comment
Share on other sites

Passo a explicar, tenho a classe Estrade e classe Cidade!

Numa outra classe de gestão, tenho uma arrayList de Estradas e uma arrayList de cidades!

Os objectos cidade tem dentro uma arrayList de Estradas, e as Estradas tem dentro 2 Cidades!

Ao guardar, o que faço é serializar a arrayList de Cidades para um ficheiro, e depois a arrayList de Estradas para outro;

o problema surge aqui, no ficheiro de Cidades, tambem é guardada a arrayList de estradas com todos os Objectos Estrada, e quando faço o Load, vou no fundo duplicar os objectos, as Cidades ficam com Objectos estrada diferentes dos que ficam na arrayList de Estradas, ou seja, duplico os objectos e perco as referencias... dentro de Cidade não tenho uma referencia para um objecto da ArrayList de Estradas, mas sim um Objecto Estrada novo...

Obrigado

Link to comment
Share on other sites

Se estás a guardar a mesma informação em dois ficheiros diferentes e em dois processos de serialização diferente é normal que isso aconteça. A forma mais simples de resolveres o problema seria serializares a classe de gestão, e aí era o mecanismo de serialização que resolvia as duplicações.

Se quiseres manter essa forma de guardar em dois ficheiros e usando dois momentos de serialização diferentes então terás de ser tua a gerir, manualmente, a duplicação de informação. Terá de guardar apenas uma só vez ou, se guardares duas vezes, tens de escrever o código de forma a leres a informação apenas uma vez. Neste caso não sei bem como fazer dado que depende de como tens o teu programa, eventualmente ler primeiro todas as estradas e ir associando as estradas já lidas aquando da leitura das cidades.

Link to comment
Share on other sites

Já tinha ponderado essa solução, isto é um trabalho académico e no enunciado este explicito que deve ser guardado em files separados, mas a opção de gerir a duplicação implicava remodelar a estrutura toda do trabalho, ainda assim acho que vou acabar por guardar o objecto de gestão... sempre é melhor que nada!

E muito obrigado pela ajuda! 😁

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.