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.

Responder a