Como retornar um String[] ???  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
HericksnakePJ
JavaEvangelist
[Avatar]

Membro desde: 23/03/2005 00:00:00
Mensagens: 352
Offline

Galerinha, é o seguinte..

Tenho um método no qual passo um parâmetro para busca em Banco de dados.
O resultado dessa busca, vou guardando em uma String[].

O problema é que não consigo retornar o valor dela. Dá o erro dizendo que está apontando para null.
O código simplificado:



Espero que alguém me ajude! Desde já obrigado! :grin:
[WWW] aim icon [ICQ]
BrunoCarloPJ
GUJ Master
[Avatar]

Membro desde: 31/05/2004 00:00:00
Mensagens: 1344
Offline

Ola

A priori ta tudo certo, mas parece que o Resultado, que julgo ser da sua query, nao retornou nada... coloque um System.out.println dentro do seu while... pra ver se ta trazendo alguma coisa....

http://
[WWW] aim icon [ICQ]
BrunoCarloPJ
GUJ Master
[Avatar]

Membro desde: 31/05/2004 00:00:00
Mensagens: 1344
Offline

Foi mal.. agora que vi o erro... :mad:

O problema e que vc nao instancio o array.. ae da NullPointerExcption...

http://
[WWW] aim icon [ICQ]
HericksnakePJ
JavaEvangelist
[Avatar]

Membro desde: 23/03/2005 00:00:00
Mensagens: 352
Offline

Cara, acho que entendi o erro.
Primeiro, estava declarando:
String retorno[];

O correto seria:
String[] retorno;

Mas mexi aqui e não deu certo... O Resultado retorna valores do banco sim...

Tem como me explicar melhor??? Valew...
Acho que mexi tanto com isso hoje, que já esgotou os neurônios do dia...
[WWW] aim icon [ICQ]
BrunoCarloPJ
GUJ Master
[Avatar]

Membro desde: 31/05/2004 00:00:00
Mensagens: 1344
Offline

Ola

Em java, quando vc declara um array vc tem que instancia-lo para poder usa-lo, tipo:

Assim vc cria um array com 10 posicoes para usar, sendo que nao sao 10 strings, e sim dez posicoes para alocar uma string.
Entao, no seu codigo, quando vc declara a string, diz que havera um array de strings, mas nao o instanciou... isto que esta causando o erro.

O problema de fazer isto com array de string e que no caso do java.sql.ResultSet vc nao sabe previamente quantas linhas foram retornadas... entao nao tem como vc instanciar o array e garantir que cabera todos os resultados..

Eu aconselho vc a usar um java.util.ArrayList, que e uma lista alocada dinamicamente.

http://
[WWW] aim icon [ICQ]
HericksnakePJ
JavaEvangelist
[Avatar]

Membro desde: 23/03/2005 00:00:00
Mensagens: 352
Offline

Ufa...

Cara, salvou o dia...
Eu já tinha usado isso mas não lembrava de jeito nenhum....
Agora deu certo!!

Quanto retorno os dados da consulta, algumas eu consigo saber quantos valores serão retornado, assim não vou ter problema. Mas vou tentar verificar a quantidade de valores retornados da Query, assim eu consigo instanciar esse vetor com diferentes valores em tempo de execução.

Muito obrigado mesmo!
Abraço!
[WWW] aim icon [ICQ]
BrunoCarloPJ
GUJ Master
[Avatar]

Membro desde: 31/05/2004 00:00:00
Mensagens: 1344
Offline

Ola,


Mas tem um metodo, toArray, que te retorna um array do list, nao precisa tentar descobrir... pode trabalhar com o ArrayList dentro do metodo ehora de retornar chamar o toArray() que ele vai te dar um array... pq descobrir previamente a quantidade de resultados que tem no ResultSet tem que fazer uma gambiarra danada...

E so pra complementar mais ainda... a um serio problema com o metodo toArray que nao recebe parametros... ele nao aceita um cast, assim vc usa o toArray e passa um o tamanho do list, assim:

e pronto, vc tem o array de String...

http://
[WWW] aim icon [ICQ]
HericksnakePJ
JavaEvangelist
[Avatar]

Membro desde: 23/03/2005 00:00:00
Mensagens: 352
Offline

Valew!! Vou testar com certeza!
Obrigado!


Opa!!! Testado e aprovado!!
[WWW] aim icon [ICQ]
rodolfocoutinhoPJ
JavaTeenager
[Avatar]

Membro desde: 30/05/2006 00:00:00
Mensagens: 156
Offline

Só lembrando que isso tem o mesmo efeito, os dois estão corretos.


http://
[WWW] aim icon [ICQ]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team