Olá Pessoal
Estava fiz o seguinte exemplo utilizando Comparable. O problema é que a minha classe, para testar, não esta chamando o método compareTo. Alguém pode dar uma verificada para ver o que estou fazendo de errado, já procurei exemplos inclusive aqui no GUJ, mas achie todos iguais ao que eu fiz, deve ter um detalhe que eu estou deixando passar.
CLASSE QUE IMPLEMENTA COMPARABLE
package collections.br;
import java.util.Calendar;
public class Cliente implements Comparable <Cliente>{
private String nome;
private String endereco;
private int idade;
private Calendar nascimento;
@Override
public int compareTo(Cliente o) {
System.out.println("Entrou aqui");
if(this.nome.compareTo(o.getNome()) < 0) {
return -1 ;
}
if(this.nome.compareTo(o.getNome()) > 0) {
return 1;
}
return 0;
}
public String getNome() {
System.out.println("GetNome");
return nome;
}
public void setNome(String nome) {
System.out.println("SetNome");
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public Calendar getNascimento() {
return nascimento;
}
public void setNascimento(Calendar nascimento) {
this.nascimento = nascimento;
}
}
CLASSE QUE TESTA A COMPARABLE
package collections.br;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class TestaCliente{
static List<Cliente> clientes = new ArrayList<Cliente>();
public static void main(String[] args) {
Cliente c1 = new Cliente();
c1.setNome("Cíntia");
c1.setEndereco("Rua Maria Januaria, 156");
c1.setIdade(25);
Calendar d = Calendar.getInstance();
d.set(1983, 5, 20);
c1.setNascimento(d);
Cliente c2 = new Cliente();
c2.setNome("Leandro");
c2.setEndereco("Rua Dr. Barcelos, 46");
c2.setIdade(29);
d.set(1979, 0, 3);
c2.setNascimento(d);
Cliente c3 = new Cliente();
c3.setNome("Caroline");
c3.setEndereco("Rua Veneza, 01");
c3.setIdade(28);
d.set(1981, 0, 4);
c3.setNascimento(d);
Collections.sort(clientes);
}
}
