Em Java, sempre que você chama um método, os argumentos devem ser fornecidos entre parênteses:
empregados[i].equals(f)
O seu raciocínio está correto, mas você deve atentar-se para alguns detalhes:
você só pode concluir que o funcionário não está na lista (retornar false) após percorrer todo o array, observe melhor o seu código e você vai entender
tome cuidado com referências nulas. Se o seu loop acessar uma posição do array com null seu código vai disparar uma NullPointerException
lembre-se de sobrescrever o método equals() da classe Funcionario
@rmendes08
Entendi.
Consegui corrigir, no caso do contem TRUE beleza, mas no caso de FALSE, problema com o NullPointer que o @murilo_galvao citou!!!
@murilo_galvao
Tentei mudar todos os For que precisava percorrer o array para FOR-EACH, mas não tive muito sucesso, se o meu array fosse do tipo int acho que teria dado certo, mas como é do tipo Funcionario, não sei muito bem como fazer.
@pfk66
Neste caso, eu compararia um atributo!? Tipo uma PK, RG, isso?
U
ubarreto21
Pessoal fui tentando e tentando e ficou assim… Quando TRUE beleza, mas no FALSE da NullPointer
booleancontem(Funcionariof){for(Funcionarioi:empregados){if(i.equals(f)){System.out.println("Funcionario "+f.nomeFuncionario+" encontrado!");returntrue;}}System.out.println("Funcionario "+f.nomeFuncionario+" não encontrado!");returnfalse;}
R
rmendes081 like
Isso acontece porque o loop for percorre cada posição do array, mesmo que ela esteja nula. Você precisa de um teste adicional, verificando se a referência i não é nula, e somente então chamar o método equals().
M
murilo_galvao1 like
cara, procura verificar o estado do seu “f”, provavelmente na hora que você vc fazendo o sysout no final ali - System.out.println(“Funcionario " +f.nomeFuncionario+ " não encontrado!”); - o f está chegando nulo ali, ai quando vc tenta acessar o nomeFuncionario ai que surge o nullPointer…
U
ubarreto21
@rmendes08@murilo_galvao
Valeu. Vai ficar +/- como no método adiciona, só imaginei que tivesse outro jeito!
Muito obrigado! Por enquanto é só isso! Quando surgir mais dúvidas eu incomodo mais um pouco!
P
pfk66
Isso mesmo. RG, CPF, seja lá o que você usa pra identificar um funcionário no seu sistema.
Equals é para comparar valores, e não entidades (apesar que 99% dos programadores OO não sabem a diferença entre objetos valor e entidades, e acabam misturando tudo no mesmo balaio… )
P
Psycopata
Já conseguiu? Eu não li o exercício, mas responderia mais ou menos assim: