Eu já usei .equals e continua a mesma coisa o mesmo erro. Só mudou a forma de comparação.
Se eu alguém puder ajudar eu agradeço muito, pois está dificil sair disso, desde ontem! Eu até posso passar o código completo Peter, para ver se você encontra o erro. abraços. Em 20 de abril de 2010 17:32, Peter P. Lupo <[email protected]> escreveu: > Compare dois objetos sempre com .equals (no caso de String também tem o > equalsIgnoreCase). Use == apenas para saber se é o mesmo objeto, não para > saber se os objetos são iguais. > > Como eu expliquei, imagina por exemplo que o length seja 0. Não entra no > for. Não teria um retorno. > > Reveja a comparação e imprima os valores sendo comparados no if dentro do > for a fim de verificar se são realmente iguais. Assim você se certificará > sobre a validade da comparação que está fazendo. Lembre-se sempre disso. :-P > > Uma vez funcionando me avise. Tenho umas dicas que não quero dar agora pra > não contaminar a sua solução. ;-) > > Abraço > > Peter P. Lupo > http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo > MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster > Sun Certified Java Associate - Java Brown Belt > +55 (021) 81742487 > > > 2010/4/20 Romulo Freires <[email protected]> > >> Fiz como o professor falou mas continua o mesmo erro >> >> >> public static Cargo *obtem(String nome*){ >> Cargo [] vet = Cargo.values(); >> for (int i = 0; i< vet.length; i++) { >> if (nome.toUpperCase() != vet[i].toString()){ >> return null; >> } >> else { >> return vet[i]; >> } >> } >> >> } >> >> O eclipese acusa erro na parte sublinhada! E ele "corrige" o erro >> colocando um Return Null >> no final do método, só que na ora do teste ele não retorna nada e quando >> "printa" ele mostra o null. >> >> Segue como o código depois que eclipse "corrige" >> >> >> public static Cargo obtem(String nome){ >> Cargo [] vet = Cargo.values(); >> for (int i = 0; i< vet.length; i++) { >> if (nome.toUpperCase() != vet[i].toString()){ >> return null; >> } >> else { >> return vet[i]; >> } >> } >> return null >> } >> Em 20 de abril de 2010 15:21, Miguel Jonathan >> <[email protected]>escreveu: >> >> Hoje na aula discutimos muito esse método. >>> A sua classe Testando deveria salvar o que o método retorna, ou pelo >>> menos imprimir, algo como: >>> >>> >>> public class Testando { >>> public static void main(String[] args) { >>> >>> System.out.println(Cargo.obtem("boy")); >>> >>> } >>> >>> } >>> >>> Como explicado na aula, a maneira mais fácil de resolver essa parte da >>> lista é fazer um método que faça: >>> >>> public static Cargo obtem(String s) { >>> a) transforma a string s em maiúsculas, usando método da classe String >>> b) cria uma variável tipo vetor de Cargo, e faz ela apontar para o >>> vetor que contém todos os objetos do enum >>> (lembra do método values()?) >>> c) procure no vetor a posição do objeto que ao receber toString() >>> retorna a mesma string s >>> d) se achar, o valor dessa posição deve ser retornado pelo método. >>> e) se não achar, seu método deve retornar null. >>> } >>> >>> Jonathan >>> >>> 2010/4/20 Peter P. Lupo <[email protected]> >>> >>> Se não retorna é pq não entra no if, certo? >>>> Logo, o que na comparação seu if pode estar errado? >>>> Pq vc não tenta imprimir o que é retornado por valueOf? >>>> >>>> Abraço >>>> >>>> Peter P. Lupo >>>> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo >>>> MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster >>>> Sun Certified Java Associate - Java Brown Belt >>>> +55 (021) 81742487 >>>> >>>> >>>> 2010/4/20 Romulo Freires <[email protected]> >>>> >>>> public static Cargo obtem(String nome){ >>>>> nome = nome.toUpperCase(); >>>>> if (valueOf(nome) == BOY);{ >>>>> return BOY ; >>>>> >>>>> Com isso os erros de cima pararam mas quando eu faço o teste >>>>> >>>>> public class Testando { >>>>> >>>>> public static void main(String[] args) { >>>>> // TODO Auto-generated method stub >>>>> >>>>> Cargo.obtem("boy"); >>>>> >>>>> } >>>>> >>>>> } >>>>> >>>>> ele não retorna nada e logico que se eu coloco algo do tipo >>>>> Cargo.obtem("by") ocorre um erro devido a própria condição. >>>>> >>>>> O que eu quero saber é pq ele não retorna nada. >>>>> >>>>> abraços galera. >>>>> >>>>> Em 19 de abril de 2010 23:13, Peter P. Lupo <[email protected]>escreveu: >>>>> >>>>>> O compilador checa se vc está retornando algo compatível (do mesmo >>>>>> tipo ou um subtipo) com o valor de retorno. Null vai servir em todos os >>>>>> casos onde o retorno for um objeto. >>>>>> >>>>>> Se vc fez um desvio (um if por exemplo), o compilador vai verificar se >>>>>> o seu código retorna algo mesmo que não entre no desvio. >>>>>> >>>>>> Então se vc fizer >>>>>> >>>>>> if (...) { >>>>>> return BOY; >>>>>> } >>>>>> >>>>>> o compilador irá reclamar pois caso não entre no if, não haverá >>>>>> retorno. Uma solução é acrescentar um return fora do if ou no else. >>>>>> >>>>>> Abraço >>>>>> >>>>>> Peter P. Lupo >>>>>> http://craftnicely.blogspot.com - http://sites.google.com/site/pplupo >>>>>> MPS.BR Authorized Implementation Practitioner - Certified ScrumMaster >>>>>> Sun Certified Java Associate - Java Brown Belt >>>>>> +55 (021) 81742487 >>>>>> >>>>>> >>>>>> 2010/4/19 Romulo Freires <[email protected]> >>>>>> >>>>>>> Tô tendo problemas com a assinatura "public static Cargo >>>>>>> obtem(String >>>>>>> nome", TALVEZ SEJA UMA COISA BOBA, mas o fato é que eu fiquei preso >>>>>>> aí. >>>>>>> >>>>>>> segue a parte que não estou conseguindo implementar! >>>>>>> >>>>>>> >>>>>>> "e) Deve haver um método de classe para obter a instância do enum a >>>>>>> partir da string do seu nome, >>>>>>> com a assinatura: public static Cargo obtem(String nome) >>>>>>> Por exemplo: Cargo.obtem("boy") deve retornar a referência da >>>>>>> instância BOY. >>>>>>> OBS1: o argumento desse método não precisa estar necessariamente em >>>>>>> maiúsculas, o seu método >>>>>>> deve fazer a conversão. >>>>>>> OBS2: caso o argumento em maiúsculas não corresponda a nenhum enum >>>>>>> com >>>>>>> esse nome, o >>>>>>> método deve retornar null." >>>>>>> >>>>>>> Devido a essa Assinatura eu estou tendo problemas com o RETURN. >>>>>>> >>>>>>> O eclipse cobra um return null e eu não estou conseguindo me livrar >>>>>>> disso, mesmo com um método pronto. >>>>>>> >>>>>>> Se alguém puder ajudar eu agradeço muito. >>>>>>> >>>>>>> Abraços galera. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Comp 2 - Geral" group. >>>>>>> To post to this group, send email to [email protected]. >>>>>>> To unsubscribe from this group, send email to >>>>>>> [email protected]<comp2-geral%[email protected]> >>>>>>> . >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>>> >>>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Comp 2 - Geral" group. >>>>>> To post to this group, send email to [email protected]. >>>>>> To unsubscribe from this group, send email to >>>>>> [email protected]<comp2-geral%[email protected]> >>>>>> . >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Comp 2 - Geral" group. >>>>> To post to this group, send email to [email protected]. >>>>> To unsubscribe from this group, send email to >>>>> [email protected]<comp2-geral%[email protected]> >>>>> . >>>>> For more options, visit this group at >>>>> http://groups.google.com/group/comp2-geral?hl=en. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Comp 2 - Geral" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<comp2-geral%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/comp2-geral?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Comp 2 - Geral" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]<comp2-geral%[email protected]> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/comp2-geral?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Comp 2 - Geral" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<comp2-geral%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/comp2-geral?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Comp 2 - Geral" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<comp2-geral%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/comp2-geral?hl=en. > -- You received this message because you are subscribed to the Google Groups "Comp 2 - Geral" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/comp2-geral?hl=en.
