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
A menos que funcionário seja uma entidade, o que é mais provável. Neste caso o correto seria:
if (empregados[i].identidade.equals(f.identidade)) {
return true
}
@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?
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().
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…
@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!
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… )