XML Encoder

0 respostas
T

Oi, será que alguém que poderia ajudar, nesta questão?

Eu estou neste momento a utilizar o XML Encoder para suportar uma feature numa aplicação que estou a desenvolver, e tudo corre bem excepto quando tendo fazer o encoding de uma classe que tem como atributo uma lista...

Quando eu faço decode na classe está tudo bem, mas a lista está vazia!

Se eu fizer apenas encode e decode à lista tudo corre bem.

Um exemplo :

A classe com a definição da lista como atributo...

import java.util.LinkedList;
import java.util.List;

public class JavaClass {

public List list = new LinkedList();

}
Depois eu tento fazer o encode /decode desta maneira
JavaClass java = new JavaClass();
java.list.add(new Date());

System.out.println(java.list.size()); => "1"

String dumpstring = dump(java);
java = (JavaClass)load(dumpstring);

System.out.println(java.list.size()); => "0"

utilizando estes métodos

public String dump(Object object) throws IOException {

ByteArrayOutputStream arraystream = new ByteArrayOutputStream();
XMLEncoder a= new XMLEncoder(arraystream);
a.writeObject(object);
a.close();

String value = arraystream.toString();
arraystream.close();

return value;
}

public static Object load(String value) throws IOException, ClassNotFoundException {

ByteArrayInputStream stream = new ByteArrayInputStream(value.getBytes());
XMLDecoder a = new XMLDecoder(stream);
Object object = a.readObject();
a.close();

stream.close();
return object;
}

É necessário algum tratamento especial para este caso? Não estou mesmo a ver o problema?

Obrigado pela ajuda!!!

Criado 24 de outubro de 2007
Respostas 0
Participantes 1