Pelo visto o método "public static Cargo obtem(String nome" é de longa a
parte mais difícil da lista. Eu gostaria apenas de fazer um comentário sobre
como o ".equals" pode ser altamente traiçoeiro. Como o professor pediu, eu
não vou colocar meu código aqui exatamente pelos motivos que ele mencionou,
MAS dentro do método obtem, eu criei um vetor dos 4 tipos de cargo e usei o
".equals" para comparar esses vetores, um a um, com a String nome do
argumento, caso ele não encontrasse nenhum dos 4, ele retornava null. O
compilador não reclamou, mas pra qualquer coisa que eu digitasse na String
nome, inclusive "boy", "motorista" ou os outros 2, ele retornava null. Ai eu
fui por partes, coloquei na classe SimulaFolha isto
"System.out.println(Cargo.BOY), e no consolhe aparecia certinho a palavra
"BOY".Bom, depois de umas 3 horas fazendo mil testes e modificações (fui
filtrando varias partes do codigo pra tentar achar o erro), eu acabei
descobrindo que se você pedir pra ele imprimir Cargo.BOY, ele imprime a
String "BOY" usando o metódo toString (que ja está automaticamente declarado
pelo fato de ser enum, e sempre é igual ao nome do enum), mas quando você
usa "Cargo.BOY.equals(nome)" (nome é a String declarada no inicio do método
obtem) ele compara o OBJETO BOY com a String nome e nunca retorna verdadeiro
! Eu sinceramente achei isso muito "cilada", porque quando todos os cargos
retornavam null, a primeira coisa que eu pensei foi "Bom, será mesmo que
esse Cargo.BOY retorna uma String ?!", testei e vi que era verdade. Depois
fiquei rodando em várias outras partes do código, tentando mil coisas, pra
no final descobrir que era só colocar "Cargo.BOY.toString().equals(nome)"
que tudo ia funcionar. Na minha cabeça, como o ".equals" é um método da
classe String, quando eu pedisse para comparar Cargo.BOY com alguma coisa,
ele automaticamente ia usar o método toString do objeto BOY e retornar uma
String e não o objeto inteiro.

Enfim, me alonguei muito mais do que pretendia, mas fica o aviso ai pra quem
for usar o ".equals"... tem que usar "toString" se não não funciona !!!

-- 
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