XStream - Nao consigo setar dois objetos iguais

Ola pessoal, estou fazendo o seguinte codigo:

//Produtos da Nota prod prod = new prod(); det[] det = new det[numeroLinhasTabela]; for(int linha = 0; linha < numeroLinhasTabela; linha++){ prod.setcProd(String.valueOf(adicionarProduto.getValueAt(linha, 0))); prod.setxProd(String.valueOf(adicionarProduto.getValueAt(linha, 1))); prod.setNCM(String.valueOf(adicionarProduto.getValueAt(linha, 7))); prod.setCFOP(String.valueOf(adicionarProduto.getValueAt(linha, 6))); prod.setuCom(String.valueOf(adicionarProduto.getValueAt(linha, 2))); prod.setqCom(String.valueOf(adicionarProduto.getValueAt(linha, 3))); prod.setvUnCom(String.valueOf(adicionarProduto.getValueAt(linha, 4))); prod.setvProd(String.valueOf(adicionarProduto.getValueAt(linha, 5))); prod.setuTrib(String.valueOf(adicionarProduto.getValueAt(linha, 2))); prod.setqTrib(String.valueOf(adicionarProduto.getValueAt(linha, 3))); prod.setvUnTrib(String.valueOf(adicionarProduto.getValueAt(linha, 4))); det[linha] = new det(); det[linha].setProd(prod); det[linha].setnItem(String.valueOf(linha+1)); xstream.useAttributeFor(det.class, "nItem"); infNFe.setDet(det[linha]); }

Ele consegue ate jogar o det no xml e tals, porem sempre sai apenas o ultimo item da tabela, ou seja, o nItem sempre fica o numero dois. Eu estou tentando percorrer e jogar um a um, mas ele nao deixa e joga apenas uma vez o ultimo produto, ficando assim:

[quote]…

15015-106

3473485214



1

Produto Teste
00
10203040
UN
2.00
186.00
4.00

UN
2.00
186.00
1




[/quote]

Nao reparem que esteja tudo errado porque eu adicionei uma coluna na tabela, entao os campos estao em lugares diferentes de onde deveriam estar… Mas esse nao eh o problema, como voces veem, antes do ele nao tem o fechamento do nItem 1 porque ele nao jogou no xml…

Como eu faço para fazer isso que estou necessitando?

Abraços

Bem pessoal, minha duvida agora eh outra. Estou ate conseguindo adicionar dois objetos, mas estou fazendo assim:

[code]List dete = new ArrayList();
NFe nfe = new NFe(infNFe);
for(int linha = 0; linha < numeroLinhasTabela; linha++){
det det = new det();
prod prod = new prod();
prod.setcProd(String.valueOf(adicionarProduto.getValueAt(linha, 0)));
prod.setxProd(String.valueOf(adicionarProduto.getValueAt(linha, 1)));
prod.setNCM(String.valueOf(adicionarProduto.getValueAt(linha, 7)));
prod.setCFOP(String.valueOf(adicionarProduto.getValueAt(linha, 6)));
prod.setuCom(String.valueOf(adicionarProduto.getValueAt(linha, 2)));
prod.setqCom(String.valueOf(adicionarProduto.getValueAt(linha, 3)));
prod.setvUnCom(String.valueOf(adicionarProduto.getValueAt(linha, 4)));
prod.setvProd(String.valueOf(adicionarProduto.getValueAt(linha, 5)));
prod.setuTrib(String.valueOf(adicionarProduto.getValueAt(linha, 2)));
prod.setqTrib(String.valueOf(adicionarProduto.getValueAt(linha, 3)));
prod.setvUnTrib(String.valueOf(adicionarProduto.getValueAt(linha, 4)));
det.setProd(prod);
det.setnItem(String.valueOf(linha+1));
dete.add(det);

                xstream.useAttributeFor(det.class, "nItem");
                xstream.alias("det", det.class);
                
        }
        infNFe.setDet(dete);[/code]

Entao, estou jogando tudo pra um List e depois jogo isso para o bean infNFe que tem uma variavel chamada te:

Entao, o meu xml esta ficando assim:

... ...

Até ai ok, antes o det estava jogando errado, mas agora esta tudo certo. O problema eh que tenho que tirar o te dai. Entao tentei usar o Annotation @XStreamImplicit, mas nao funcionou. Entao tentei mudar o nome dele, como vi em alguns exemplos, dessa maneira:

Mas tambem nao funcionou. Estou fazendo algo errado ou configurei algo errado?


[EDITADO]

Pessoal, 1 minuto apos esse post, eu consegui resolver meu problema dessa maneira:

Porem, gostaria de saber porque nao consigo usar Annotation?

Claro que o melhor eh que esteja funcionando, mas se alguem souber o motivo e puder me explicar, eu ficaria agradecido.

Abraços

Amigo tow com esse mesmo problema, como vc solucionou isso?