Dúvida Sobre método recursivo

10 respostas
J

Boa Tarde Galera,

estava precisando de uma ajuda , pois preciso gerar uma String no formato XML , inserindo linhas de itens e SubItens , porém preciso fazer de forma recursiva pois não sei quantos niveis terei:

A minha classe acaba estourando o Stack , pois a recursão entra em um loop infinito.

Obrigado
JJ

10 Respostas

ViniGodoy

Na linha 71 não seria?

geraArvoreDepartamento(lsFilhos);
J

Sim, mas se eu tirar essa linha eu não consigo gerar os filhos, ainda mais se tiver uma hierarquia de 6 níveis ,por exemplo.

Abraço,
JJ

ViniGodoy

Eu não falei para tirar a linha, mas para substituir a linha. O parâmetro parece que está errado.

J

É verdade, tinha que passar a linha com a lista de filhos, aí nao deu mais problemas na Stack, mas o algorítmo gerou a saída errada

<item id='3' text='Departamento 3' ></item>
<item id='4' text='Departamento 4' ></item>
<item id='1' text='Departamento 1' ></item>
<item id='2' text='Departamento 2' ></item>
<item id='3' text='Departamento 3' ></item>
<item id='4' text='Departamento 4' ></item>
<item id='5' text='Departamento 5' ></item>
<item id='6' text='Departamento 6' ></item>

Obrigado,
JJ

P

Ola,

Dependendo dos seus requisitos de performance vale mais pena utilizar JAXB, pois voce se livra
definitivamente do trabalho de marshalling (Objetos -> XML) e unmarshalling (XML -> Objetos).

Comece por aqui: http://docs.sun.com/app/docs/doc/819-3669/bnbay?a=view

[ ]'s

J

Olá, na verdade eu estava usando o JDOM , mas para montar essa hierarquia que é o problema, sacou?

Se usar o JAXB ou JDOM, vou acabar com o mesmo problema (que é montar a hierarquia), pois toda a hierarquia de itens (departamentos) está no banco de dados.

Obrigado!!!

Abs
JJ

P

Ola,

Sim, entendi. Mas no caso do JAXB, voce nao precisa se preocupar com a hierarquia no XML, pois a mesma sera
definida com base na composicao dos seus objetos e vice-versa. Tudo o que voce precisa fazer entao eh
anotar suas entidades com annotations do JAXB, fazer as agregacoes necessarias (dependendo do caso,
pode aplicar do design pattern Composite ou Composite Entity) e executar o marshaller para gerar a estrutura
XML equivalente.

[ ]'s

J

Legal, vou estudar essa solução!

Obrigado!

Abraço
JJ

J

Valeu!

Obrigado
JJ

J

Resolvido!! Valeu pessoal

Criado 8 de dezembro de 2010
Ultima resposta 8 de dez. de 2010
Respostas 10
Participantes 3