Classificar objetos

2 respostas
Marques

Colegas

Tenho um DTO genérico assim:

public class GenericDto {
	
	private Object atrib1;
	private Object atrib2;
	private Object atrib3;
       //getters and  setters
}

Então, populei o mesmo com um aributo java.util.Date no atrib3.
Agora preciso classificar por esse atributo com esse cóidigo abaixo (passado pelo thingol).

Porém ele dá erro at java.text.Collator.compare(Unknown Source)
at br.com.fit.action.ContabilDespesaAction$1.compare(ContabilDespesaAction.java:173)

Já tentei fazer assim
return coll.compare((Date)c1.getAtrib3(), (Date)c2.getAtrib3()));
porém não rola. Alguma dica? MUito obrigado, Marques
final Collator coll = Collator.getInstance(new Locale("pt", "BR"));
		SortedSet<GenericDto> setVencimentos = new TreeSet<GenericDto>(
				new Comparator<GenericDto>() {
					public int compare(GenericDto c1, GenericDto c2) {						
						return coll.compare(c1.getAtrib3(), c2.getAtrib3()));	
						
					}
				});

2 Respostas

T

O Collator compara duas strings, não duas datas. Para comparar duas datas, use o método compareTo da classe java.util.Date.

final Collator coll = Collator.getInstance(new Locale("pt", "BR"));
		SortedSet<GenericDto> setVencimentos = new TreeSet<GenericDto>(
				new Comparator<GenericDto>() {
					public int compare(GenericDto c1, GenericDto c2) {						
                                            return ((Date) c1).compareTo ((Date) c2);
					}
				});
Marques

Mais uma vez, valew thingol!!!

Te devo mais essa!!!

Tks,

Marques

Criado 23 de outubro de 2008
Ultima resposta 23 de out. de 2008
Respostas 2
Participantes 2