Boa tarde Galera !!!
Não sei se da e nem como fazer isso.
O problema é o seguinte.
Preciso fazer uma classe para comparar determinado atributo de um determinado objeto, pois tenho um List que contém N objetos e preciso ordenar a List pelo tal atributo.
Procurei aqui no GUJ e encontrei o Post http://www.guj.com.br/posts/list/20989.java que é justamente o que eu precisava, porém preciso deixá-lo mais genérico.
Pois bem … Com base nesse exemplo do Post citado, vejamos o método a seguir:
public int compare(Object o1, Object o2) {
Presidente p1 = (Presidente) o1;
Presidente p2 = (Presidente) o2;
if (crescente) {
return p1.inicio < p2.inicio ? -1 : (p1.inicio > p2.inicio ? +1 : 0);
} else {
return p1.inicio < p2.inicio ? +1 : (p1.inicio > p2.inicio ? -1 : 0);
}
}
O que eu gostaria de fazer é de passar um Objeto qualquer, e o nome(String) do atriuto que eu gostaria de comparar.
Dai, descobrir qual classe é o objeto que eu passei e verificar se o atributo existe no tal objeto passado e dai sim fazer o p1.inicio < p2.inicio.
Por exemplo:
public int compare(Object obj1, String atributoObj1, Object obj2, String atributoObj2){
// Descobrir qual o obj1
// Verificar se o atributoObj1 existe em obj1
// Idem ao obj2
//Entaum fazer ..
return obj1.atributoObj1 < obj2.atributoObj2 ? -1 ...
}
É possível ???
Obrigado Galera !!