Olá pessoal. Fiz um método bem bestinha aqui só pra explicar o meu problema. Aqui no eclipse nesse código abaixo diz que o método “numero” deve retornar um resultado inteiro, mas eu estou sempre retornando um inteiro ali nos cases dentro do switch. Então qual é o problema nesse método? Não dá pra usar return dentro do switch? Espero que me ajudem.
Simplesmente porque o “return null” será acionado quando nenhum condição “case” se torne satisfeita. Ou então porque o compilador não é suficientemente inteligente para captar isso de sua aplicação.
Tchauzin!
sergiotaborda
darkmen:
Olá pessoal. Fiz um método bem bestinha aqui só pra explicar o meu problema. Aqui no eclipse nesse código abaixo diz que o método "numero" deve retornar um resultado inteiro, mas eu estou sempre retornando um inteiro ali nos cases dentro do switch. Então qual é o problema nesse método? Não dá pra usar return dentro do switch? Espero que me ajudem.
O switch é uma forma evoluida do if-else
cada case é um if, mas o else ?
O switch precisa de um default que significa "se não for nenhuma das opções que eu escolhi, então ... "
É considerado um erro vc não usar o default, embora o compilador aceite. Por isso que ele dá o warning. A configuração do seu eclipse está feita para que quando o compilador dê esse warning o eclipse entenda como erro e pare de compilar. Vá em opções / Java compiler se quiser remover esse warning ( mas é claro que vc não deve fazer isto).
Sempre coloque o default. Por isso obriga vca pensar "e se não for nenhum destas opções ?" Por exemplo, no seu caso de exemplo, não está definido o que acontece se d for outro numero que não 1 e 2 e ha muitos numeros diferentes de 1 e 2 :) logo, o seu código vai quebrar.
lucasportela
Sem_Nome:
darkmen:
Coloquei um "return null" no final do método e o aviso desapareceu. Porque desse jeito deu certo?
Não tem como isso ter dado certo porque metodos inteiros não podem retornar null. Apenas números inteiros.
Na verdade inteiro até deixa retornar null, desde que seja um Wrapper, se for primitivo realmente não pode
// aceitaprivateIntegerteste(){returnnull;}
// não aceitaprivateintteste(){returnnull;}
D
darkmen
sergiotaborda:
darkmen:
Olá pessoal. Fiz um método bem bestinha aqui só pra explicar o meu problema. Aqui no eclipse nesse código abaixo diz que o método "numero" deve retornar um resultado inteiro, mas eu estou sempre retornando um inteiro ali nos cases dentro do switch. Então qual é o problema nesse método? Não dá pra usar return dentro do switch? Espero que me ajudem.
O switch é uma forma evoluida do if-else
cada case é um if, mas o else ?
O switch precisa de um default que significa "se não for nenhuma das opções que eu escolhi, então ... "
É considerado um erro vc não usar o default, embora o compilador aceite. Por isso que ele dá o warning. A configuração do seu eclipse está feita para que quando o compilador dê esse warning o eclipse entenda como erro e pare de compilar. Vá em opções / Java compiler se quiser remover esse warning ( mas é claro que vc não deve fazer isto).
Sempre coloque o default. Por isso obriga vca pensar "e se não for nenhum destas opções ?" Por exemplo, no seu caso de exemplo, não está definido o que acontece se d for outro numero que não 1 e 2 e ha muitos numeros diferentes de 1 e 2 :) logo, o seu código vai quebrar.
Valeu cara pela explicação. Era isso mesmo, agora o erro sumiu. Pensei que o default era opcional e se não fosse nenhum dos cases ele retornaria null.