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].
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en.

Responder a