| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 14:06:35
|
danielpk7
Thread.start()
Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline
|
Olá pessoal, estou com um problema aqui, tenho um método q retorna um String, dentro desse metodo tem um laço "for" e dentro desse "for", se eu acho um determinado valor eu retorno ele com "return valor" acontece q ao invés de sair do metodo ele vai pra linha subsequente ao "for" e continua dentro do método. No caso o "return" tah com complexo de "break", to achando mto estranho pois nunca vi isso, ou eu desaprendi a programar ou o meu java tah louco...hehehe
Vou postar o código abaixo:
Olhando no código, qdo ele entra na linha 49 ou 51 ao invés de sair do metodo ele passa a executar a linha 56 ainda dentro do método e no fim u único return q realmente sai do metodo eh o "return null" da linha 63.
Desde ja agradeço a atenção.
This message was edited 2 times. Last update was at 05/05/2009 09:00:38
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 14:12:23
|
rodrigo.bossini
GUJ Master
![[Avatar]](/images/avatar/3b6fe2dc98ceed6e1608e7cfc662ab11.jpg)
Membro desde: 01/07/2008 20:59:17
Mensagens: 1055
Offline
|
Tem um monte de If's antes de chegar no return. Com certeza um deles está dando false sem você perceber.
Creio que esses dois sejam os suspeitos:
if (field.length() > 0) {
if(nomeCampo.toLowerCase().equals(field)){
This message was edited 1 time. Last update was at 04/05/2009 14:14:10
|
http://www.rodrigobossini.com.br/
Meu Twitter:@rodrigobossini Se uma pessoa fala português há 30 anos e ainda não aprendeu, por que é que vou acreditar que ela está programando em alguma linguagem de programação há apenas 10 anos e sabe o que está fazendo? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 14:20:49
|
Pedrosa
JWizard
![[Avatar]](/images/avatar/2b763288faedb7707c0748abe015ab6c.jpg)
Membro desde: 13/07/2005 13:08:08
Mensagens: 2505
Localização: São Paulo - Brasil
Offline
|
Use o debug da sua IDE e veja o que realmente esta acontecendo!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 14:27:01
|
danielpk7
Thread.start()
Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline
|
Pedrosa wrote:Use o debug da sua IDE e veja o que realmente esta acontecendo!
Sim ja debuguei inúmeras vezes antes de postar, ele entra na linha onde está o "return" mas como disse, ao inves de sair do metodo ele pula pra fora do "for", constatei isso debugando...
rod.attack wrote:Tem um monte de If's antes de chegar no return. Com certeza um deles está dando false sem você perceber.
Debugando ja vi q ele não entra certinho nesses ifs e chega na instrução return.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 14:31:22
|
jamikas
Debugger
![[Avatar]](/images/avatar/4410a22591c15bc707367093e5b8e8df.jpg)
Membro desde: 15/12/2006 10:58:30
Mensagens: 58
Offline
|
Tem que inserir o comando "break;" após o return;
This message was edited 1 time. Last update was at 04/05/2009 14:34:05
|
Alexandre Soares da Silva
Seja MultiThread, mas pense Mono.
http://javaloko.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 14:40:50
|
ignacio83
Java Ninja
![[Avatar]](/images/avatar/3d50a489984362c71713b9fd1cf79ef0.jpg)
Membro desde: 16/03/2007 10:46:06
Mensagens: 253
Localização: São Paulo
Offline
|
Tem que inserir o comando "break;" após o return;
Não tem não...
Algumas vezes passei por situações parecidas e na verdade o que acontece é que a classe não tinha sido recompilada, ai debug mostra as linhas, mas não está executando aquelas linhas...
Tente fazer um rebuild all. O Eclipse tem uma opção de Rebuild Auto, veja se está marcada...
This message was edited 1 time. Last update was at 04/05/2009 14:41:20
|
André de Fontana Ignacio |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 14:42:07
|
danielpk7
Thread.start()
Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline
|
jamikas wrote:Tem que inserir o comando "break;" após o return;
Eu até pensei em fazer isso jamikas, dar um break e usar uma variável String de retorno retornando ao fim do método mas como eu uso recursão isso não ficaria mto bonito, teria q fazer mais algum teste sem nescessidade.
This message was edited 1 time. Last update was at 04/05/2009 14:45:25
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 15:15:40
|
danielpk7
Thread.start()
Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline
|
ignacio83 wrote:
Algumas vezes passei por situações parecidas e na verdade o que acontece é que a classe não tinha sido recompilada, ai debug mostra as linhas, mas não está executando aquelas linhas...
Tente fazer um rebuild all. O Eclipse tem uma opção de Rebuild Auto, veja se está marcada...
Tentei dar um Clean e depois um Build no projeto e nada, inclusive o Rebuild Auto ja estava marcado...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 15:33:56
|
rodrigo.bossini
GUJ Master
![[Avatar]](/images/avatar/3b6fe2dc98ceed6e1608e7cfc662ab11.jpg)
Membro desde: 01/07/2008 20:59:17
Mensagens: 1055
Offline
|
danielpk7 wrote:
rod.attack wrote:Tem um monte de If's antes de chegar no return. Com certeza um deles está dando false sem você perceber.
Debugando ja vi q ele não entra certinho nesses ifs e chega na instrução return.
Se ele não entra nesses if's então ele nunca chega no return!!
|
http://www.rodrigobossini.com.br/
Meu Twitter:@rodrigobossini Se uma pessoa fala português há 30 anos e ainda não aprendeu, por que é que vou acreditar que ela está programando em alguma linguagem de programação há apenas 10 anos e sabe o que está fazendo? |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 04/05/2009 16:00:55
|
danielpk7
Thread.start()
Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline
|
rod.attack wrote:
danielpk7 wrote:
rod.attack wrote:Tem um monte de If's antes de chegar no return. Com certeza um deles está dando false sem você perceber.
Debugando ja vi q ele não entra certinho nesses ifs e chega na instrução return.
Se ele não entra nesses if's então ele nunca chega no return!!
Foi mal cara, erro de digitação, quis dizer q ele entra certinho nos ifs, chega na linha do return e inexplicavelmente não sai do método, sai somente do "for" como se fosse um break.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 05/05/2009 08:52:30
|
danielpk7
Thread.start()
Membro desde: 03/07/2007 20:44:15
Mensagens: 33
Offline
|
Consegui resolver o problema. Como ja esperado, não era loucura do java, acontece q na linha 57 eu faço uma recursão o q coloca o mesmo metodo novamente na pilha de execução, na segunda chamada do método eu dou um return e ao invez de voltar pra classe q chamou o método ele volta pra ele mesmo normal pois foi ele q se chamou recursivamente. Resolvi colocando um return na linha 57 ficando assim: "return getCampoHibernate(classe+"Id", nomeCampo);". Agora q vi a burrice q tinha feito.
Obrigado a todos.
This message was edited 1 time. Last update was at 05/05/2009 09:00:20
|
|
|
 |
|
|