Boa tarde a todos.
Se a sua intenção é evitar o NullPointer, então não vejo muita diferença entre usar o método “contains(…)” da Interface Collection e o método booleano hasNext() da classe Iterator. Dai o loop “while (I.hasNext())” que vai executar o looping equanto o objeto existir dentro da coleção.
Agora se a sua intenção é testar qual o tipo de Objeto armazenado na coleção, então neste caso cabe o "contains(…), visto que uma coleção (Collection) pode ser um ArrayList contendo vários tipos de Objetos (ClienteBean, VendasBean, EstoqueBeans e etc), entretanto, também acho que não faz muita diferença se voce acrescentar ao ArrayList apenas um tipo de objeto (ClienteBean).
Quanto ao criar um método “Equals” dentro Bean, acho também que é poupar pouca digitação de caracteres desta forma:
// Dentro do Bean
public class ClienteBean {
.....
.....
public Boolean equals(String texto){
if (getNome().equals(texto){
return true;
else
return false;
}
}
}
// Fora do Bean
...
ClienteBean cli = (ClienteBean) I.next();
if (cli.getNome().equals("Rafael Borges")){
...
}
// ou usar
ClienteBean cli = (ClienteBean) I.next();
if (cli.equals("Rafael Borges")){
...
}
Ou seja, poupou a digitação de 9 caracteres para escrever vários outros implementando um método dentro do Bean, o que eu considero disperdício de recurso, além do que o método equals(…) dentro do Bean está engessado somente a pesquisa do nome, e e se o cliente quiser pesquisar pelo Código ou pela Função :?: :?: :?: