Dúvida em generics

4 respostas
M

Opa :smiley:

Quando tenho um map que é declarado:

Set parametrosSet = new TreeSet(new ParametroComparator());

Como que eu declaro o generico dele? Eu tentei:

Set<Parametro> parametrosSet = new TreeSet<Parametro>(new ParametroComparator());

Esse parametroComparator é uma classe dentro da minha classe “Registro.java”

Mas continua dando warning pq preciso colocar o Comparator, como faço isso?

[]'s

4 Respostas

T

Como é declarada a classe ParametroComparator?

M

Registro.java

public class Registro{

private class ParametroComparator implements Comparator {
public int compare(Object o1, Object o2) {
      Parametro p1 = (Parametro)o1;
      Parametro p2 = (Parametro)o2;
      if (p1.getId().compareTo(p2.getId()) == 0) { 
        return -1;
      }
      return p1.getId().compareTo(p2.getId());
    }
  }
}

....

método {
Set<Parametro> parametrosSet = new TreeSet<Parametro>(new ParametroComparator());
}
T

O correto é implementar ParametroComparator como:

public class Registro{

private class ParametroComparator implements Comparator<Parametro> {
public int compare(Parametro p1, Parametro p2) {
...
}
M

valeu thingol…resolveu

[]'s

Criado 4 de abril de 2008
Ultima resposta 4 de abr. de 2008
Respostas 4
Participantes 2