Esse seu metodo equals nao parece fazer muito sentido…
O que vc espera que seu metodo retorne? Ele vai retornar True, pois vc esta testando se o objeto passado eh uma instancia de uma determinada classe. Nesse caso sempre dois objetos do tipo TipoArquivoAction vao ser considerados iguais.
O override do método public boolean equals(Object obj) deve ser feito acordo com um contrato definido na especificação,
caso contrário você pode ter alguns resultados “imprevisíveis”, por exemplo, ao se utilizar Collections.
Etapas importantes para verificar se dois objetos são iguais:
Verifique se o objeto passado como argumento é diferente de null
Verifique se o objeto é uma instância da mesma classe
Compare os atributos importantes do objeto
Não esqueça de implementar também o hashCode
Exemplos:
Classe Pessoa
public class Pessoa {
private String cpf;
private String nome;
private int idade;
// o resto dos atributos pertinentes ao sistema
// construtor, getters e setters omitidos
public boolean equals(Object o) {
if (o == null || !(o instanceof Pessoa)) {
return false;
}
return cpf.equals(o.cpf); // compara apenas usando o CPF
}
// não esqueça de implementar o hashCode
}
Classe Livro
public class Livro {
private String isbn;
private String titulo;
private String codigo;
private String autor;
// o resto dos atributos pertinentes ao sistema
// construtor, getters e setters omitidos
public boolean equals(Object o) {
if (o == null || !(o instanceof Livro)) {
return false;
}
return isbn.equals(o.isbn) && codigo.equals(o.codigo); // compara pelo ISBN e pelo código (já que podem haver vários exemplares do mesmo livro numa biblioteca, por exemplo)
}
// não esqueça de implementar o hashCode
}