List amigos = (List) xstream.fromXML(contatosEmXML);
Pessoa amigo = (Pessoa) amigos.get(0);
Telefone foneDoAmigo = amigo.getFoneComercial();
por favor alguem pode me explicar o que esta acontecendo aqui não intendi o uso da lista eu sei o basico … porém acho que abstrairam um pouco para o que aprendi …
por favor ajuda …
Posta o erro que deu se não fica impossível. Mas uma coisa vc não fez, ver se a lista tinha algum elemento antes de tentar acessá-lo. Tem que fazer isso usando o método size da lista.
[code]package xml;
import java.util.ArrayList;
import java.util.List;
import com.thoughtworks.xstream.XStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import javax.swing.JOptionPane;
public class Main {
public static void main(String[] args) {
String contatosEmXML;
// Configurando XStream
XStream xstream = new XStream();
//Criando Lista de Objetos qualquer
List contatos = new ArrayList(1);
// Criando alguns dados
Pessoa P1 = new Pessoa();
P1.setNome("Universidade Federal do ABC");
P1.setEmail("ufabc@ufabc.edu.br");
Pessoa P2 = new Pessoa();
P2.setNome("Guilherme dos Santos Marques");
P2.setEmail("guilherme@hotmail.com");
Telefone foneDoP1 = new Telefone();
foneDoP1.setDdd(11);
foneDoP1.setNumero("0000-0000");
Telefone foneDoP2 = new Telefone();
foneDoP2.setDdd(11);
foneDoP2.setNumero("111-111");
P1.setFoneComercial(foneDoP1);
P2.setFoneComercial(foneDoP2);
contatos.add(P1);
contatos.add(P2);
// Passando os dados de Objetos Java para XML
contatosEmXML = xstream.toXML(contatos);
System.out.println("\nContatos em XML:");
System.out.println(contatosEmXML);
JOptionPane.showMessageDialog(null, "Amigo com Objeto em XML\n" + contatosEmXML);
try{
FileWriter xml =new FileWriter("Teste.XML");
PrintWriter escreve=new PrintWriter(xml);
escreve.print(contatosEmXML);
escreve.flush();
escreve.close();
}catch(Exception X){
System.out.print("Erro");
}
// Passando os dados de XML para Objetos Java
//*/
//modo explicado
List amigos = (List) xstream.fromXML(contatosEmXML);
Pessoa amigo = (Pessoa) amigos.get(0);
Telefone foneDoAmigo = amigo.getFoneComercial();
System.out.println("\nAmigo como Objeto Java:");
System.out.println("Nome: " + amigo.getNome());
System.out.println(
"Fone Comercial: (" + foneDoAmigo.getDdd() + ") " + foneDoAmigo.getNumero());
JOptionPane.showMessageDialog(null, "Amigo como Objeto Java\nNome: " + amigo.getNome() +
"\nTelefone comercial: " + foneDoAmigo.getDdd() + " " + foneDoAmigo.getNumero());
/*/
//*/
//*/
}
}[/code]
Renzo vc já trabalhou com XStream
Alguem me explica como estão colocando os dados nas posições certas quando você transforma o XML em Objeto?
Então escrever um XML eu já consigo pelo XStream, porém eu não consigo tyransformar ele eem classes do java direito…
Esse arquivo ta funcionando só que a parte que esta ai no projeto é do tutorial a parte que mandei antes e não sei o que ele ta fazendo … não quero apenas copiar codigo tenho que intender o que se acontece …