Collections.sort  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
kamikazeishida
JavaChild
[Avatar]

Membro desde: 26/04/2006 09:12:58
Mensagens: 137
Localização: Curitiba Pr
Offline

ola alguem pode me ajudar?

tenho uma classe veiculoTO onde a classe VeiculoNovoTO extends VeiculoTO implements Comparable<VeiculoNovoTO>

/**
* Compara dois veículos.
*
* @param objeto
* veículo a comparar
* @return resultado da comparação
* @see #getModelo()
*/
public int compareTo(VeiculoNovoTO veiculoNovoTO) {
return getModelo().compareTo(veiculoNovoTO.getModelo());
}

Na controller estou com esse erro na Collections

Bound mismatch: The generic method sort(List<T> of type Collections is not applicable for the
arguments (ArrayList<VeiculoTO>. The inferred type VeiculoTO is not a valid substitute for the
bounded parameter <T extends Comparable<? super T>>


ArrayList<VeiculoTO> veiculos = new ArrayList<VeiculoTO>(this.veiculos .values());

Collections.sort(veiculos);


agradeço desde já

Pergunte ao GOOGLE, ele é seu amigo!!!

Todas as pessoas inteligentes usam o Google.
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Esse erro é um pouco cabeludo porque tem herança no meio. Não sei resolver assim de cor, vou fazer uns testes depois do almoço.
[WWW]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Dica: em vez de implementar Comparable, muitas vezes é melhor usar um Comparator mesmo. Depende do seu gosto.

[WWW]
kamikazeishida
JavaChild
[Avatar]

Membro desde: 26/04/2006 09:12:58
Mensagens: 137
Localização: Curitiba Pr
Offline

Valeu kra a ajuda....consegui resolver o problema...

Criei uma classe Comparador
public class Comparador{

/**
* Compara dois veiculos e o ordena em ordem Alfabetica
*
* @author Márcio André Ishida
* @param <T>
* @return (Comparator<T> ALFABETICA_ORDER
* @since 1.1
*/
public static <T> Comparator<T> AlfabeticaComparator() {
return (Comparator<T> ALFABETICA_ORDER;
}

private static final Comparator ALFABETICA_ORDER = new AlfabeticaComparator();

private static class AlfabeticaComparator<T>
implements Comparator<VeiculoNovoTO>{

public int compare(VeiculoNovoTO c1, VeiculoNovoTO c2) {
return c1.compareTo(c2);
}
}
}

e na classe controller coloquei assim

ArrayList<VeiculoTO> veiculos = new ArrayList<VeiculoTO>(this.veiculos
.values());

Collections.sort(veiculos,Comparador.AlfabeticaComparator());


Num sei se eh o certo mas ta funcionando

vlw a ajuda

Pergunte ao GOOGLE, ele é seu amigo!!!

Todas as pessoas inteligentes usam o Google.
[MSN]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team